Как мне сериализовать, а затем проанализировать такой JSON?

#javascript #json

#javascript #json

Вопрос:

У меня есть код javascript и объекты в нем, мне нужно собрать эти объекты и сериализовать их в массив. Я использую такую функцию:

 function getData () {
    var objects = [];
    for (var i in this) {
        if (this[i] instanceof Object)
            if (this[i].isShow())
                objects.push(JSON.stringify(this[i]));
    }
    JSInterface.setLocationsData(locations);
}
  

Затем мне нужно разобрать это на Java. Я получаю следующее:

 {"title":"sample1", value:1}, {"title":"sample2", value:2}
  

Как мне его разобрать? Это не JSONArray, поэтому я добавил:

 JSInterface.setLocationsData("[" locations "]");
  

Есть какое-нибудь лучшее решение?

Комментарии:

1. Это недопустимый JSON. Помимо этого, вы бы использовали анализатор JSON на Java, которых существует множество. Простой поиск в Google по «Java JSON» укажет вам правильное направление.

2. Я использую org.json. Вопрос заключался в том, как сделать JSON допустимым.

3. Тогда я бы предложил переписать ваш вопрос, отметив, что проблема в том, что вы не знаете, как создать действительный JSON, и удалить из него все, что связано с Java.

Ответ №1:

Поместите stringify в последнюю строку:

 function getData () {
    var objects = [];
    for (var i in this) {
        if (this[i] instanceof Object)
            if (this[i].isShow())
                objects.push(this[i]);
    }
    JSInterface.setLocationsData(JSON.stringify(objects));
}