Json字符串到json对象转换

时间:2015-01-13 04:01:14

标签: java javascript android json

我有类似的问题,但我无法解决我的问题。我已经尝试将我的json响应解析为Json数组和Json对象,但每次,我都得到字符串到json对象的这个异常。 我猜可能是问题在于我的Json回应。



results = { "type": 1, "user_log": "ahsan.tahir.92_/var/www/html/2014-10-11__15-54-52__50sec.txt_res", "freq": 0.01, "coordina": [ [-37], [-9], [-20], [-12], [-22], [-9], [-22], [-15], [-25], [-7], [-20], [-12], [-20], [-9], [-25], [8], [-23], [-11], [-18], [-13], [-19], [-10], [-21], [-12], [-25], [-11], [-17], [-12], [-22], [-13], [-21], [3] ], "tot_time": 40.11, "tot_distace": 100, "stroke_each_pool": [ [16], [16] ], "tot_stroke": [ [16], [16] ], "split": [ [20.22], [19.89] ], "timing_turn": 7.04, "cycle_Rate_l": [ [2.22], [2.2680001] ], "cycle_Rate_r": [ [2.224], [2.27] ], "mean_velocity": [ [2.4727993], [2.5138261] ], "stroke_length": [ [3.125], [3.125] ], "stroke_freq": [ [79.077431], [77.419357] ], "roll_peaks": [ [-44.10043335], [55.79428101], [-61.51541138], [54.7466507], [-62.09820557], [55.01488495], [-62.48770142], [53.44023132], [-70.32449341], [51.8399353], [-65.84837341], [53.5617981], [-63.50210571], [55.9821167], [-62.37905121], [39.42669678], [-43.44207764], [63.20912933], [-59.19660187], [50.6708374], [-63.8214798], [54.57595062], [-63.31864166], [53.82037354], [-66.93650818], [52.36277008], [-65.23461151], [52.89829254], [-62.78508759], [51.17367554], [-62.87123108], [59.13114929] ], "mean_roll_dx": [ [52.475822], [54.73027] ], "mean_roll_sx": [ [61.531971], [60.950779] ], "std_roll_dx": [ [5.4471908], [4.3127728] ], "std_roll_sx": [ [7.6123171], [7.4134283] ], "mean_roll": [ [57.003899], [57.840527] ], "std_roll": [ [7.9220791], [6.6817732] ], "mean_pitch": [ [-5.5227709], [-5.2282872] ], "std_pitch": [ [-5.5227709], [-5.2282872] ], "clean_stroke_time": [ [15.92], [16.84] ], "errore": 227, "fatal_error": { "_ArrayType_": "double", "_ArraySize_": [0,0], "_ArrayData_": null } }




我正在解析它:



JSONObject reader = new JSONObject(in);
            JSONObject sys  = reader.getJSONObject("results");




知道我在这里缺少什么吗?

我的例外情况如下:



org.json.JSONException: Value type of type java.lang.String cannot be converted to JSONObject




5 个答案:

答案 0 :(得分:1)

您发布的results字符串中没有results字段,是问题所在。在任何情况下,请继续并重新格式化您的问题,以更准确地反映您正在做的事情,并包括您看到的错误消息。

实际上,您是指JSON输出中的错误消息吗?这似乎是一个JSON编码的错误消息,由您调用的任何服务输出。您传递给该服务的数据似乎存在一些问题。

答案 1 :(得分:0)

我可能误解了你的问题,但你在哪里使用类似的东西解析Json响应 JSONObject jsonObject =(JSONObject)jsonParser.parse(strippedJSON); 其中strippedJSON是从API收到的响应。

答案 2 :(得分:0)

此:

results = {rest of response here}

无效JSON。

也许你想要归还这个:

{"results": {rest of response here}}

......或者只是

{rest of response here}

答案 3 :(得分:0)

您的reader对象是您自己的results对象。

JSONObject resultsJSON = new JSONObject(in);
System.out.println("User Log: " + resultsJSON.get("user_log"));

您正在获取异常,因为您的输入JSON字符串中没有results对象,即您在没有JSON包装的情况下正在接收您的results对象。

答案 4 :(得分:-1)

如果您使用的是javascript 试试这个

var parsed_data = JSON&& JSON.parse(结果)|| $ .parseJSON(结果);