Почему JSONParser не удаляет "из ключей и значений? - PullRequest
1 голос
/ 11 мая 2011

У меня есть следующая строка 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 создается с помощью Java-классов json.org:

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();

1 Ответ

4 голосов
/ 11 мая 2011

Я думаю, что ключ заключается в использовании метода stringValue .Попробуйте:

jsonArray.get (i) .isObject (). Get ("значение"). IsString (). StringValue ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...