为什么 JSONParser 不删除“”来自键和值?

发布于 2024-11-06 16:58:45 字数 1098 浏览 0 评论 0原文

我有以下 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随心而道 2024-11-13 16:58:45

我认为关键是使用 stringValue 方法。尝试:

jsonArray.get(i).isObject().get("value").isString().stringValue()

I think the key is to use the stringValue method. Try:

jsonArray.get(i).isObject().get("value").isString().stringValue()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文