Estou trabalhando em um aplicativo Android. Em meu aplicativo, preciso converter uma string em objeto Json e, em seguida, analisar os valores. Eu verifiquei uma solução em stackoverflow e encontrei um problema semelhante aqui link
A solução é assim
`{"phonetype":"N95","cat":"WP"}`
JSONObject jsonObj = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
Eu uso da mesma forma no meu código. Minha corda é
{"ApiInfo":{"description":"userDetails","status":"success"},"userDetails":{"Name":"somename","userName":"value"},"pendingPushDetails":[]}
string mystring= mystring.replace("\"", "\\\"");
E depois de substituir eu obtive o resultado como este
{\"ApiInfo\":{\"description\":\"userDetails\",\"status\":\"success\"},\"userDetails\":{\"Name\":\"Sarath Babu\",\"userName\":\"sarath.babu.sarath babu\",\"Token\":\"ZIhvXsZlKCNL6Xj9OPIOOz3FlGta9g\",\"userId\":\"118\"},\"pendingPushDetails\":[]}
quando eu executo JSONObject jsonObj = new JSONObject(mybizData);
Estou recebendo a exceção json abaixo
org.json.JSONException: Expected literal value at character 1 of
Por favor me ajude a resolver meu problema.
Respostas:
Remova as barras:
fonte
JSONArray obj = new JSONArray(json);
. Em seguida, você pode usar um loop for para iterar pelo array.{"Fat cat":"meow"}
.isso funciona
fonte
tente isto:
fonte
Para obter um JSONObject ou JSONArray de uma String, criei esta classe:
Aqui para obter o JSON:
Exemplo:
fonte
[
ou{
para saber se é uma matriz ou um objeto. Então você não estaria arriscando as duas exceções, apenas a pertinente.tente isso, finalmente isso funciona para mim:
fonte
Você só precisa das linhas de código abaixo:
fonte
Aqui está o código e você pode decidir qual
StringBuffer (sincronizado) ou StringBuilder mais rápido usar.
O benchmark mostra que StringBuilder é mais rápido.
fonte
Pode estar abaixo é melhor.
fonte