2015-01-13 6 views
0

У меня есть похожие вопросы, но я не смог решить свою проблему. Я попытался разобрать ответ json как в Json-массив, так и на Json-объект, но каждый раз, я получаю это исключение строка в объект json. Возможно, проблема связана с моим ответом Json.Json string to json object conversion

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

+0

Является ли «результат =» частью вашего ответа? – immibis

+0

удалить «result =» из вашего ответа json, thn только он будет действительным json string –

+0

проверить ваш JSON в первую очередь: http: //jsonlint.com/ – ppuskar

ответ

0

Это:

results = {rest of response here} 

не является действительным JSON.

Возможно, вы имели в виду, чтобы вернуть это:

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

... или просто

{rest of response here} 
+0

Да, в этом была проблема. спасибо –

1

Там нет results поле в results строке вы в курсе, что вопрос. В любом случае, пожалуйста, перейдите и переформатируйте свой вопрос, чтобы более точно отразить то, что вы делаете, и включите сообщение об ошибке, которое вы видите.

Собственно, вы имеете в виду сообщение об ошибке на выходе JSON? Это похоже на сообщение об ошибке, закодированное JSON, которое было выведено с помощью любой вызываемой вами службы. Кажется, что есть некоторые проблемы с данными, которые вы передаете этой службе.

0

Возможно, у меня возник вопрос о недоразумении, но где вы разбираете ответ Json, используя что-то вроде JSONObject jsonObject = (JSONObject) jsonParser.parse (strippedJSON); где strippedJSON ответ получен от API.

+0

Я считал, что просто передаю строковый ответ конструктору json object Нравится: JSONObject reader = новый JSONObject (ResponseString); выполнит эту работу? –

-1

Если вы используете JavaScript попробовать этот

вар parsed_data = JSON & & JSON. parse (результаты) || $ .parseJSON (результаты);

0

Ваш reader объект - ваш results объект сам.

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

Вы получаете исключение, потому что нет results объекта во входной строке JSON т.е. вы получаете ваш results объект без обертки JSON вокруг него.