這是調用返回JSON結果的Web服務的AsyncTask的一部分。正如你所看到的,我硬編碼了實際的JSON返回對象。這是從我得到的錯誤直接拉,它指定它不能從我傳入的字符串對象,這是變量的結果創建JSON對象。當它在ParseResults
方法中遇到new JSONObject(result)
時發生該錯誤。爲什麼要硬編碼確切的字符串工作,而不是傳入的字符串?解析JSON webservice結果android
@Override
protected void onPostExecute(String result) {
try {
result = "{\"Response\":{\"ReturnCode\":200,\"ReturnMessage\":\"Information Successfully Retrieved\",\"ReturnData\":null,\"ReturnClass\":{\"PRO_ID\":\"11111111-1111-1111-1111-111111111111\",\"PRO_FirstName\":\"SILVER\",\"PRO_LastName\":\"HIYO\"},\"FriendlyErrorMessage\":null}}";
JSONObject jsonObject = new ApiMethods().ParseResult(result);
ParseResults方法片段。
public JSONObject ParseResult(String result) throws JSONException
{
JSONObject returnedObject = new JSONObject();
try
{
JSONObject jsonObject = new JSONObject(result);
同樣在下面,正如我在其他用戶的評論中所述,返回語句是返回數據。這是從.NET MVC應用程序返回的。當我提到UTF8時,我添加了它,但仍然出現相同的錯誤。
return Json(data: new { Response = returnValue }, contentType: "application/json", contentEncoding: System.Text.Encoding.UTF8, behavior: JsonRequestBehavior.AllowGet);
和整個錯誤消息:
org.json.JSONException: Value {"Response":{"ReturnCode":200,"ReturnMessage":"Information Successfully Retrieved","ReturnData":null,"ReturnClass":{"PRO_ID":"11111111-1111-1111-1111-111111111111","PRO_FirstName":"Silver","PRO_LastName":"HIYO"},"FriendlyErrorMessage":null}} of type java.lang.String cannot be converted to JSONObject
我甚至不得到引用創建JSON對象中的值的點。這會在JSON對象本身的初始創建時炸彈。 – user3241191
請檢查您已經硬編碼的JSON字符串。這是無效的,你可以在http://jsonlint.com/ – jagmohan
檢查它的有效性Json字符串是有效的,我已經使用json lint。如果它不是一個有效的字符串,那麼硬編碼的字符串就不會起作用。 – user3241191