2013-01-25 62 views
1

我有JSON字符串數組,它看起來像這樣,如何轉換JSON字符串arrray以JSON數組列表

{ {name:"214",value:true,Id:0}, 
    {name:"215",value:true,Id:0}, 
    {name:"216",value:true,Id:0} 
} 

,並希望以隱蔽這個字符串JSON數組對象,迭代列表讀取每個對象的值。然後將值設置爲相應的dto並保存。 但我沒有找到任何好的方法來將普通的JSON數組字符串轉換爲json數組對象。

我沒有使用谷歌JSON

,我希望它在正常JSON做自己。請幫我

和Java類我想是這樣的

JSONObject[] jsonObjectList = String after convert(); 

    for (JSONObject jsonObject : jsonObjectList) { 
     System.out.println(" name is --"+jsonObject.get("name")); 
     System.out.println(" value is ---"+jsonObject.get("value")); 
     System.out.println(" id is ----"+jsonObject.get("id")); 

    } 
+0

什麼是'JSONObject'? net.sf. *? – Srinivas

+1

雅,其net.sf. *只有.. –

+0

然後,'JSONArray'將工作,需要確保JSON數組字符串中的括號[和]。 – Srinivas

回答

3

下面是解析JSON對象的例子..使用JSON lib這個..

import net.sf.json.JSONArray; 
import net.sf.json.JSONException; 
import net.sf.json.JSONObject; 
import net.sf.json.JSONSerializer; 
public class TestJson { 
    public static void parseProfilesJson(String jsonStr) { 
     try { 
      JSONArray nameArray = (JSONArray) JSONSerializer.toJSON(jsonStr); 
      System.out.println(nameArray.size()); 
      for(Object js : nameArray){ 
       JSONObject json = (JSONObject) js; 
       System.out.println(json.get("date")); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 
    public static void main(String[] args) { 
     String s = "[{\"date\":\"2012-04-23\",\"activity\":\"gym\"},{\"date\":\"2012-04-24\",\"activity\":\"walking\"}]"; 
     parseProfilesJson(s); 
    } 
} 
1

使用此: 假設你JSONArraynet.sf.json.JSONArray

String str = "[ {name:\"214\",value:true,Id:0},{name:\"215\",value:true,Id:0},{name:\"216\",value:true,Id:0}]"; 
JSONArray array = JSONArray.fromObject(str); 
+0

您的JSON字符串需要以[開頭並且以]結尾] – Srinivas

0

你可以如下做到,

String str = "[ {name:\"214\",value:true,Id:0},{name:\"215\",value:true,Id:0},{name:\"216\",value:true,Id:0}]"; 
JsonParser parser = new JsonParser(); 
JsonElement element = parser.parse(str); 
JsonArray jasonArray = element.getAsJsonArray(); 

如果您正在使用import com.google.gson.*;

1

我只是結合了一些答案,找到了正確的解決方案 這裏是代碼..

String str = "[ {name:\"214\",value:true,Id:1},{name:\"215\",value:false,Id:2},{name:\"216\",value:true,Id:3}]"; 
    JSONArray array = JSONArray.fromObject(str); 
    for (Object object : array) { 
     JSONObject jsonStr = (JSONObject)JSONSerializer.toJSON(object); 
      System.out.println(" name is --"+jsonStr.get("name")); 
      System.out.println(" value is ---"+jsonStr.get("value")); 
      System.out.println(" id is ----"+jsonStr.get("Id")); 
    }