为什么 JSONParser 不删除“”来自键和值?
我有以下 JSON 字符串:
{"locale":"de","strings":[{"key":"navigation.search","value":"Suchen"}]}
我尝试这样解析它:
// parse the response text into JSON
String json = response.getText();
Window.alert(json);
JSONValue jsonValue = JSONParser.parseLenient("{\"locale\":\"de\",\"strings\":[{\"key\":\"navigation.search\",\"value\":\"Suchen\"}]}");
Window.alert(jsonValue.isObject().get("locale").toString());
JSONArray jsonArray = jsonValue.isObject().get("strings").isArray();
for (int i = 0; i < jsonArray.size(); i++) {
Window.alert(jsonArray.get(i).isObject().get("key").isString() + " -> " + jsonArray.get(i).isObject().get("value").isString());
}
为什么 Window.alert() 中有引号,我想,引号对于创建 JSON 是必不可少的。
顺便说一句,JSON 是使用 json.org Java 类创建的:
PrintWriter w = new PrintWriter(System.err);
new JSONWriter(w)
.object()
.key("locale").value("de").key("strings").array().object().key("key").value("navigation.search").key("value").value("Suchen").endObject().endArray()
.endObject();
w.flush();
I have the following JSON-String:
{"locale":"de","strings":[{"key":"navigation.search","value":"Suchen"}]}
I try to parse it this way:
// parse the response text into JSON
String json = response.getText();
Window.alert(json);
JSONValue jsonValue = JSONParser.parseLenient("{\"locale\":\"de\",\"strings\":[{\"key\":\"navigation.search\",\"value\":\"Suchen\"}]}");
Window.alert(jsonValue.isObject().get("locale").toString());
JSONArray jsonArray = jsonValue.isObject().get("strings").isArray();
for (int i = 0; i < jsonArray.size(); i++) {
Window.alert(jsonArray.get(i).isObject().get("key").isString() + " -> " + jsonArray.get(i).isObject().get("value").isString());
}
Why are there quotes in the Window.alert(), I thought, the quotes are essential, for creating JSON.
By the way, the JSON is created with the json.org Java-Classes:
PrintWriter w = new PrintWriter(System.err);
new JSONWriter(w)
.object()
.key("locale").value("de").key("strings").array().object().key("key").value("navigation.search").key("value").value("Suchen").endObject().endArray()
.endObject();
w.flush();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为关键是使用 stringValue 方法。尝试:
I think the key is to use the stringValue method. Try: