У меня есть следующие строки, которые не могут быть преобразованы в Java картуне может преобразовать JSon отформатированной строки к карте Java
{
"msg_id" : "6b0af820-6bf8-4bc8-823e-a8f7435b69da",
"msg_body" : "path from chongqing to shanghai",
"outcome" : {
"intent" : "route_",
"entities" : {
"location" : {
"end" : 19,
"start" : 10,
"value" : "chongqing",
"body" : "chongqing",
"suggested" : true
},
"destination" : {
"end" : 31,
"start" : 23,
"value" : "shanghai",
"body" : "shanghai",
"suggested" : true
}
},
"confidence" : 0.682
}
}
Мой код, где jsonstr является строка выше
JSONObject jas= new JSONObject(jsonstr); //This is where Exception thrown
Единственного трюк может что значение jsonstr получено из класса сообщений android.
import android.os.Message;
import android.os.Messenger;
import org.json.JSONObject;
в передающей стороне:
Message messageToClient = Message.obtain(null, 0, theoriginalstrcontainingjson);
client.send(messageToClient);
в принимающей стороне:
void handleMessage(Message msg){
jsonstr = msg.obj.toString();
JSONObject jas= new JSONObject(jsonstr); (exception happens)
Исключение:
11-24 07:45:15.473: W/System.err(12674): org.json.JSONException: Value get of type java.lang.String cannot be converted to JSONObject
11-24 07:45:15.473: W/System.err(12674): at org.json.JSON.typeMismatch(JSON.java:111)
11-24 07:45:15.473: W/System.err(12674): at org.json.JSONObject.<init>(JSONObject.java:158)
11-24 07:45:15.473: W/System.err(12674): at org.json.JSONObject.<init>(JSONObject.java:171)
Я заподозрить передачи строки может губит свой формат. Является ли это возможным?
Передача произошла между двумя действиями, если это имеет значение вообще. Я тестировал в отправляющей активности, и это сработало, но в принимающем, это не – Daniel