Tenho a seguinte string de um JSON de um serviço da web e estou tentando converter isso para um JSONarray
{
"locations": [
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
},
{
"lat": "23.053",
"long": "72.629",
"location": "ABC",
"address": "DEF",
"city": "Ahmedabad",
"state": "Gujrat",
"phonenumber": "1234567"
}
]
}
Eu validei isso String
online, parece estar correto. Agora estou usando o seguinte código no desenvolvimento do Android para utilizar
JSONArray jsonArray = new JSONArray(readlocationFeed);
Isso gera uma exceção, uma exceção de incompatibilidade de tipo.
readlocationFeed
?Respostas:
Aqui você obtém JSONObject, então altere esta linha:
com o seguinte:
e depois
fonte
String de entrada
Maneira simples de converter string em JSON
Resultado
fonte
Usando json lib: -
Usando GSON lib: -
fonte
gson
objeto é criado, mas não usado.Gson gson = new Gson();
você precisará converter determinada string para em
JSONObject
vez deJSONArray
porque a string atual contémJsonObject
como elemento raiz em vez deJsonArray
:fonte
ou convertê-lo em JSONOBJECT
fonte
Experimente este código:
fonte
se a resposta for assim
você pode analisar assim
aqui, o tamanho do JsonArray é 1. Caso contrário, você deve usar o loop for para obter valores.
fonte
Você pode fazer o seguinte:
fonte
É uma maneira muito simples de converter:
}
}
fonte
Se tiver o seguinte JSON do serviço da web, Json Array como resposta:
tem que aceitá-lo primeiro como um array Json, então enquanto lê seu objeto tem que usar Object Mapper.readValue, porque Json Object Still in String.
mapper.read é a função correta, se você usar mapper.convert (param, param). Isso vai te dar um erro.
fonte