【发布时间】:2016-07-08 05:21:58
【问题描述】:
我有从我的网络服务接收 json 的 json。 会是这个样子,
{"JSONDataResult":"[{\"id\":3,\"e_code\":123533,\"type\":\"ab\",\"description\":\"sick-leave\",\"remarks\":\"test\",\"req_date\":\"2016-07-01T12:22:34\",\"date\":\"01\/07\/2016\",\"response\":null,\"aproved_date_time\":null,\"status\":\"not seen\"}]"}
当从 json http://www.jsoneditoronline.org/ 验证它时,它说它只有一个 object 。我什至不能从它这样说的客户端 android 应用程序将其转换为 json 数组
org.json.JSONException: Value [{"id":3,"e_code":123533,"type":"ab","description":"sick-leave","remarks":"test","req_date":"2016-07-01T12:22:34","date":"01/07/2016","response":null,"aproved_date_time":null,"status":"not seen"}] at JSONDataResult of type java.lang.String cannot be converted to JSONArray
我正在使用 AsyncHttpClient (loopj) 来解析 json
client.get("http://192.168.1.6/JSONService/RESTService.svc/json/dddd",new JsonHttpResponseHandler(){
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
try {
String str=response.toString();
JSONObject jobj=new JSONObject(str);
jsonArray=jobj.getJSONArray("JSONDataResult");
...
【问题讨论】:
-
对不起,这是this的重复问题
-
为什么要再次将json转换为字符串?为什么不直接解析呢??
-
我在那里找到了答案...
-
JSONis 是一个具有单个元素的对象,其值为 string,它本身就是 JSON。所以你必须解析它两次。如果您对制作人有任何控制权,我建议您更改它。