2015-10-18 3 views
-1

Я хочу создать JSON данных с двумя объектами в массивеКак инициализировать массив с некоторыми объектами в нем?

String message = "{ "animal" : [{"name":"alice", "type":"cat"}, {"name":"john", "type":"dog"}, {"name":"peter", "type":"bird"} ] }"; 

Но это будет сделать некоторые ошибки и не может работать в затмении

Как я могу решить это

+0

Ваш вопрос из заголовка (* Как мне инициализировать массив с некоторыми объектами в нем? *), А вопрос в теле выглядит другим (* Как его разрешить *), если вы хотите разрешить ошибку Eclipse, попробуйте это - 'String message =" {\ "animal \": [{\ "name \": \ "alice \", \ "type \": \ "cat \"}, {\ "name \": \ "john \ ", \" type \ ": \" dog \ "}, {\" name \ ": \" peter \ ", \" type \ ": \" bird \ "}]}"; ' – hagrawal

ответ

1

Вы должны бежать двойные кавычки с обратными косыми чертами, как показано ниже:

String message = "{ \"animal\" : [{\"name\":\"alice\", \"type\":\"cat\"}, {\"name\":\"john\", \"type\":\"dog\"}, {\"name\":\"peter\", \"type\":\"bird\"} ] }"; 

Eclipse, имеет опцию "побег текста, когда Pasti ng в строковый литерал "(Preferences->Java->Editor->Typing), что многострочный текст с копией вставки в строковые литералы приведет к цитированию новых строк. Обратите внимание: после включения этой функции вам все равно придется сначала написать две кавычки, а затем вставить текст внутри этих меток.

enter image description here

Добавление образцов кода для синтаксического разбора данных JSON.

package com.stackoverflow.answer; 

import org.json.JSONArray; 
import org.json.JSONObject; 

public class JsonParserExample { 

    public static void main(String[] args) { 
     String message = "{ \"animal\" : [{\"name\":\"alice\", \"type\":\"cat\"}, {\"name\":\"john\", \"type\":\"dog\"}, {\"name\":\"peter\", \"type\":\"bird\"} ] }"; 
     JSONObject messageJson = new JSONObject(message); 
     JSONArray animals = messageJson.getJSONArray("animal"); 

     int n = animals.length(); 
     for (int i = 0; i < n; ++i) { 
      JSONObject animal = animals.getJSONObject(i); 
      System.out.println(String.format("animal.%d.name: %s", i, animal.getString("name"))); 
      System.out.println(String.format("animal.%d.type: %s", i, animal.getString("type"))); 
     } 
    } 

} 

Надеюсь, теперь вы поняли. Слишком поздно. Я иду спать. Счастливое кодирование !!!

+0

как я могу получить данные «peter»? –

+0

Добавлена ​​логика синтаксического анализа в ответе выше. Пожалуйста, попробуйте. Удачи... –

Смежные вопросы