2015-01-13 3 views
0

비슷한 질문을 찾고 있지만 내 문제를 해결할 수 없습니다 .Json 배열 및 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

+0

"results ="응답의 일부입니까? – immibis

+0

json 응답에서 "result ="를 제거하십시오. 유효한 json 문자열 –

+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); 여기서 stripped는 API에서받은 응답입니다.

+0

문자열 응답을 생성자에 전달하는 것으로 볼 수있었습니다. json 객체 Like : JSONObject reader = 새 JSONObject (ResponseString); 이 작업을 수행합니까? –

-1

을이

var에 parsed_data = JSON & & JSON을 시도 자바 스크립트 를 사용하는 경우. 구문 분석 (결과) || $ .parseJSON (결과);

0

reader 개체는 results 개체입니다.

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

귀하의 의견 JSON 문자열 즉, 당신이 주위에 JSON 래퍼없이 results 오브젝트를 받고있는에는 results 객체가 없기 때문에 당신은 예외가 있어요.