Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
663 views
in Technique[技术] by (71.8m points)

validation - Are booleans valid JSON

Why do some JSON validators flag a boolean value as invalid JSON, and others as valid? That is, just true or false values (no object).

Valid:

Invalid:

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The validator you link to validates the JSON string existing of a mere true as invalid according to RFC 4627, which dictates that the root of a JSON string is to be an array or object:

A JSON text is a serialized object or array.

 JSON-text = object / array

An unwrapped value such as true or "foo" or 42 is not JSON according to that RFC.

The other RFCs it can validate against, RFC 7159 and RFC 8259, deem the above examples valid as it does not constrain a JSON text to objects or arrays, but also allows values:

A JSON value MUST be an object, array, number, or string, or one of the following three literal names:

 false null true

And because the former (RFC 4627) is obsoleted by the latter two (RFC 7159 respectively 8259), true is a valid JSON string.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...