JSON の「null」プロパティを解析しようとしたときに 1 つの問題に直面しました。本当の問題を理解するのを手伝ってください。次のJSONがありました:
{
"properties" : {
"null" : {
"value" : false
}
}
}
http://jsonlint.comを使用して、この JSON が有効であることを検証しました。私はJavaからそれを解析しようとしました:
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);
}
}
しかし、例外があります:
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)
http://json-lib.sourceforge.netの json-lib-2.4-jdk15.jar を使用して解析しました。誰でもこれを明確にしてもらえますか? このライブラリが例外をスローするのに、オンライン バリデーターが有効な JSON であると言ったのはなぜですか? それはライブラリのバグですか、それとも何か間違っていますか?