JSON "null"プロパティを解析しようとすると1つの問題に直面しました。本当の問題が何かを理解するのを助けてください。JSONプロパティ "null"を解析できません
{
"properties" : {
"null" : {
"value" : false
}
}
}
私はこのJSONが有効であることを検証するためにhttp://jsonlint.comを使用:私は、次のJSONを持っていました。
import net.sf.json.JSONObject;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws IOException {
String st = "{" +
" 'properties' : {" +
" 'null' : {" +
" 'value' : false" +
" }" +
" }" +
"}";
JSONObject.fromObject(st);
}
}
しかし例外ました:私はJavaからそれを解析しようとした私はそれを解析する
http://json-lib.sourceforge.netからJSON-libの-2.4-jdk15.jarを使用
Exception in thread "main" java.lang.ClassCastException: JSON keys must be strings.
at net.sf.json.JSONObject._fromJSONObject(JSONObject.java:927)
at net.sf.json.JSONObject.fromObject(JSONObject.java:155)
at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:108)
at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:238)
at net.sf.json.JSONObject._processValue(JSONObject.java:2655)
at net.sf.json.JSONObject.processValue(JSONObject.java:2721)
at net.sf.json.JSONObject.element(JSONObject.java:1786)
at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1036)
at net.sf.json.JSONObject._fromString(JSONObject.java:1201)
at net.sf.json.JSONObject.fromObject(JSONObject.java:165)
at net.sf.json.JSONObject.fromObject(JSONObject.java:134)
を。誰もこれを明確にしてもらえますか?なぜこのライブラリは例外をスローしますが、オンラインバリデータはそれが有効なJSONだと言っていますか?それは図書館のバグですか、何か間違ったことをしましたか?
これが問題の原因ではありませんが、 'null'なのではJavaScriptでキーワードです。あなたは本当にあなたの財産の名前としてそれを使用する必要がありますか? – aroth
@aroth 1)JSONはJavaScriptではありません。オブジェクトリテラルを二重引用符で囲む必要があるJavaScriptリテラルの形式化されたサブセットです2) 'null 'は' null'ではありません –
@pst - JSONはJavaScriptを使用していますが、多くの場合、JavaScriptで作業することになります(JavaScriptでは機能しませんが、いくつかの[混乱しやすいコード](http://jsfiddle.net/SZSm6/)になります)。また、 'null'もJavaのキーワードです。 「ヌル」が「ヌル」でないことは重要ではない。私の意見では、まだ "" null "というプロパティを呼び出すのは意味的に曖昧です。 – aroth