0

私のAndroidアプリケーションでは、1つのWebサービスを呼び出し、1つのjsonobjectを返しています。デバイスでは、このような1つの応答を取得しています..

"{  \"Time_Stamp\" : \"10/10/2012 4:26 PM\",  \"records\" : [ {    \"'Name'\" : \"'LD-00000002'\",    \"'Appointment_Date_Time'\" : \"'null'\",    \"'Phone'\" : \"'9909955555'\",    \"'Home_Country_Address'\" : \"'null'\",    \"'Occupation'\" : \"'null'\",    \"'SR_Appointment_Status'\" : \"'Open'\",    \"'Id'\" : \"'a0OE0000001iLynMAE'\",    \"'SR_Appointment_Comment'\" : \"'testing'\",    \"'ProductsOfInterest'\" : \"'null'\",    \"'ActivityName'\" : \"'Sales'\",    \"documentsList\" : [ ]  }, {    \"'Name'\" : \"'LD-00000002'\",    \"'Appointment_Date_Time'\" : \"'null'\",    \"'Phone'\" : \"'9909955555'\",    \"'Home_Country_Address'\" : \"'null'\",    \"'Occupation'\" : \"'null'\",    \"'SR_Appointment_Status'\" : \"'Open'\",    \"'Id'\" : \"'a0OE0000001iLynMAE'\",    \"'SR_Appointment_Comment'\" : \"'testing'\",    \"'ProductsOfInterest'\" : \"'null'\",    \"'ActivityName'\" : \"'Sales'\",    \"documentsList\" : [ {      \"numberOfImages\" : 3,      \"Name\" : \"new document\",      \"Mandatory\" : false,      \"FilePath\" : null,      \"Category\" : null    } ]  } ]}"

私はそれをこのようなオブジェクトに変換しようとしています

  JSONObject jsonObj=new JSONObject(objMngr.getResponse());

それを変換すると、「java.lang.StringをJSONObjectに変換できません」という1つの例外がスローされます...以下は、それがthrowigであるという正確な例外です..理由は何ですか?この問題を解決するにはどうすればよいですか??

 {  "Time_Stamp" : "10/10/2012 4:26 PM",  "records" : [ {    "'Name'" : "'LD-00000002'",    "'Appointment_Date_Time'" : "'null'",    "'Phone'" : "'9909955555'",    "'Home_Country_Address'" : "'null'",    "'Occupation'" : "'null'",    "'SR_Appointment_Status'" : "'Open'",    "'Id'" : "'a0OE0000001iLynMAE'",    "'SR_Appointment_Comment'" : "'testing'",    "'ProductsOfInterest'" : "'null'",    "'ActivityName'" : "'Sales'",    "documentsList" : [ ]  }, {    "'Name'" : "'LD-00000002'",    "'Appointment_Date_Time'" : "'null'",    "'Phone'" : "'9909955555'",    "'Home_Country_Address'" : "'null'",    "'Occupation'" : "'null'",    "'SR_Appointment_Status'" : "'Open'",    "'Id'" : "'a0OE0000001iLynMAE'",    "'SR_Appointment_Comment'" : "'testing'",    "'ProductsOfInterest'" : "'null'",    "'ActivityName'" : "'Sales'",    "documentsList" : [ {      "numberOfImages" : 3,      "Name" : "new document",      "Mandatory" : false,      "FilePath" : null,      "Category" : null    } ]  } ]} of type java.lang.String cannot be converted to JSONObject
4

5 に答える 5

1

試す

  JSONObject jsonObj=new JSONObject(objMngr.getResponse().toString().replace("\\", " "));

あなたのjsonStringは大丈夫のようです。ただし、応答タイプは文字列ではない場合があります。それを試してみてください。問題は、サーバーから送信された、すでにエスケープされている逆コンマにあります。

于 2012-10-10T12:23:51.943 に答える
0

getResponse() はすでに文字列ですが、応答は有効な JSON ではないと思います。応答が文字列でない場合は、toString() メソッドで文字列を変換できます。

于 2012-10-10T12:41:54.480 に答える
0

最初にレスポンスを文字列に変換してから、 JSONObjectを作成してみてください

于 2012-10-10T11:35:42.540 に答える
0

文字列にいくつかの隠し文字があるようです。これを試して

return new JSONObject(json.substring(json.indexOf("{"), json.lastIndexOf("}") + 1));
于 2013-03-18T04:42:00.543 に答える