2012-05-14 5 views
0

У меня возникла проблема с json в java. ниже - JSON, который я должен создать через java-код.Как создать вложенный json в java

{"status":"0", 
"Response":{ 
    "abc":[ 
     "def":[ 
      "fgh":[ 
       { 
        "abc":"abc", 
        "def":"abc", 
        "ghi":"abc", 

       }, 
       { 
        "abc":"abc", 
        "def":"abc", 
        "ghi":"abc", 

       }, 
       { 
        "abc":"abc", 
        "def":"abc", 
        "ghi":"abc", 

       } 
        ], 
      "ghi":[ 
       { 
        "abc":"abc", 
        "def":"abc", 
        "ghi":"abc", 

       }, 
       { 
        "abc":"abc", 
        "def":"abc", 
        "ghi":"abc", 

       }, 
       { 
        "abc":"abc", 
        "def":"abc", 
        "ghi":"abc", 

       } 
        ] 
      ] 
     ] 
    ] 
} 
} 

и вот код java.

JSONObject result = new JSONObject(); 
    JSONObject abcObject = new JSONObject(); 
    JSONArray resultArray = new JSONArray(); 
    JSONArray fghArray = new JSONArray(); 
    JSONArray defArray = new JSONArray(); 
    JSONArray abcArray = new JSONArray(); 

abcObject.put("abc"); 
abcObject.put("def"); 
abcObject.put("ghi"); 
fghArray.add(abcObject); 
defArray.add(fghArray); 
abcArray.add(defArray); 
result.put("status", 0); 
result.put("Response",abcArray); 
return resultJson.toString(); 

Проблема:

когда я отправить обратно JSON в JSP. выход не отображается.

success:function(data) { 
      alert(data); 
      var json = $.toJSON(data); 
      alert(json); 
     }, 

предупреждение (данные) предупреждает объект, а предупреждение второго предупреждения (json) ничего не показывает.

+1

И в чем проблема? Будьте более конкретными, пожалуйста. –

+1

Это недействительно JSON. (Ваши самые сокровенные «объекты» смешивают фигурные скобки синтаксиса объектного литерала с синтаксисом синтаксиса массива с разделителями-запятыми. Некоторые из других свойств делают противоположное, т. Е. Смешивают квадратные скобки синтаксиса литерала массива с атрибутом 'property: value 'синтаксис объектных литералов.) – nnnnnn

+0

Александр У меня есть вопрос. –

ответ

1

Ваш объект JSON имеет неправильный синтаксис: объект должен содержать список пар полей/значений и заключен в фигурные скобки {}, массив представляет собой список значений, заключенных с угловыми скобками [].

+0

Это все еще недействительно json –

0

В Примере JSON является Wrong Обновите его

объект

JSON должен быть как

{ 
     "key1":"value", 
     "key2":"value2" 
    } 

JSON массив

[ 
     { 
      "key1":"value", 
      "key2":"value2" 
     }, 
     { 
      "key1":"value", 
      "key2":"value2" 
     } 
     ] 

вы не можете иметь

//Wrong Array format (Array should be list of Objects) 
    [ 
     "key1": "value", 
     "key2": "value2" 
    ] 

и вес курица вам гнездо их, они должны быть как

{"key1": "value1", 
     "key2": [ 
      { 
       "key1": "value", 
       "key2": "value2" 
      }, 
      { 
       "key1": "value", 
       "key2": "value2" 
      } 
     ], 
     "key3": [ 
      { 
       "key1": "value", 
       "key2": "value2" 
      }, 
      { 
       "key1": "value", 
       "key2": "value2" 
      } 
     ] 
    } 

Поскольку вы где с помощью пары в вашем примере выше я изменил выше массив JSON к JSON объект новый образец JSON является

{ 
     "status": "0", 
     "Response": { 
      "abc": { 
       "def": { 
        "fgh": [ 
         { 
          "abc": "abc", 
          "def": "abc", 
          "ghi": "abc" 
         }, 
         { 
          "abc": "abc", 
          "def": "abc", 
          "ghi": "abc" 
         }, 
         { 
          "abc": "abc", 
          "def": "abc", 
          "ghi": "abc" 
         } 
        ], 
        "ghi": [ 
         { 
          "abc": "abc", 
          "def": "abc", 
          "ghi": "abc" 
         }, 
         { 
          "abc": "abc", 
          "def": "abc", 
          "ghi": "abc" 
         }, 
         { 
          "abc": "abc", 
          "def": "abc", 
          "ghi": "abc" 
         } 
        ] 
       } 
      } 
     } 
    } 

И код Java для создания выше объекта JSON

 import org.codehaus.jettison.json.JSONArray; 
     import org.codehaus.jettison.json.JSONException; 
     import org.codehaus.jettison.json.JSONObject; 
     public static String createJson() { 
      JSONObject result = new JSONObject(); 
      JSONObject response = new JSONObject(); 
      JSONObject abc = new JSONObject(); 
      JSONObject def = new JSONObject(); 
      JSONArray fgh = new JSONArray(); 
      JSONArray ghi = new JSONArray(); 
      JSONObject sampleInnerElement = new JSONObject(); 
      try { 
       sampleInnerElement.put("abc","abc"); 
       sampleInnerElement.put("def","abc"); 
       sampleInnerElement.put("ghi","abc"); 
       //populating the fgh Array 
       fgh.put(sampleInnerElement); 
       fgh.put(sampleInnerElement); 
       fgh.put(sampleInnerElement); 
       //populating the Ghi Array 
       ghi.put(sampleInnerElement); 
       ghi.put(sampleInnerElement); 
       ghi.put(sampleInnerElement); 

       def.put("fgh",fgh); 
       def.put("ghi",ghi); 
       abc.put("def",def); 
       response.put("abc",abc); 
       result.put("status","0"); 
       result.put("response",response); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      return result.toString(); 
     } 
Смежные вопросы