2013-03-31 20 views
16

Próbuję utworzyć ten obiekt JSON na Androida. Utknąłem, jak dodać ciąg znaków do obiektu.Jak dodać tablicę ciągów w obiekcie JSON?

A = { 
    "class" : "4" , 
    "name" : ["john", "mat", "jason", "matthew"] 
    } 

Jest to kod, który napisałem:

import org.json.JSONObject; 

JSONObject school = new JSONObject(); 

school.put("class","4"); 
school.put("name", ["john", "mat", "jason", "matthew"]); 

Jednak ostatnia linia daje błąd. Jakikolwiek sposób minął to?

Odpowiedz

36

Nieodpowiednie podejście zaproponowane przez Toma. Zoptymalizowany kod to:

ArrayList<String> list = new ArrayList<String>(); 
list.add("john"); 
list.add("mat"); 
list.add("jason"); 
list.add("matthew"); 

JSONObject school = new JSONObject(); 

school.put("class","4"); 
school.put("name", new JSONArray(list)); 
+1

To jest poprawna metoda Java tego. Wybrana odpowiedź zadziała, ale nie będzie to właściwa metoda. – zeeshan

+0

Znacznie lepszy sposób robienia tego powinien zostać zaakceptowany. –

2

Otrzymujesz błąd z tego powodu.

school.put("name", ["john", "mat", "jason", "matthew"]); 
       ^        ^ 

Wykonaj to.

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]")); 
+0

nie pomogło kumplowi – VenkateshShukla

+0

@VenkateshShukla Jaki problem masz teraz? –

+0

Przepraszam za opóźnienie .... co Tom powiedział poniżej rozwiązał mój problem ... – VenkateshShukla

6

Otrzymujesz błąd, ponieważ ostatnia linia jest nieprawidłowa Java.

school.put("name", new JSONArray("[\"john\", \"mat\", \"jason\", \"matthew\"]")); 
+0

To rozwiązało ... Właściwie musiałem stworzyć nowy JSONArray i umieścić w nim wszystkie dane. Dużo to jest teraz – VenkateshShukla

2

@ bhavindesai, odpowiedź jest świetną odpowiedzią. Oto inny sposób rozwiązania tego problemu. Możesz to zrobić po prostu używając biblioteki Json Simple. Oto Gradle

compile 'com.googlecode.json-simple:json-simple:1.1' 

Oto przykładowy kod:

org.json.simple.JSONObject jsonObject=new org.json.simple.JSONObject(); 
jsonObject.put("Object","String Object"); 

ArrayList<String> list = new ArrayList<String>(); 
      list.add("john"); 
      list.add("mat"); 
      list.add("jason"); 
      list.add("matthew"); 

      jsonObject.put("List",list); 

To wszystko. :)

Powiązane problemy