Convertir cadena a matriz JSON

Resuelto Ashish Kasma asked hace 54 años • 11 respuestas

Tengo la siguiente cadena de un JSON de un servicio web y estoy intentando convertirlo en unJSONarray

{
    "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"
        }
    ]
}

Validé esto Stringen línea, parece ser correcto. Ahora estoy usando el siguiente código en el desarrollo de Android para utilizar

JSONArray jsonArray = new JSONArray(readlocationFeed);

Esto genera una excepción, una excepción de falta de coincidencia de tipos.

Ashish Kasma avatar Jan 01 '70 08:01 Ashish Kasma
Aceptado

Aquí obtienes JSONObject, así que cambia esta línea:

JSONArray jsonArray = new JSONArray(readlocationFeed); 

con lo siguiente:

JSONObject jsnobject = new JSONObject(readlocationFeed);

y después

JSONArray jsonArray = jsnobject.getJSONArray("locations");
for (int i = 0; i < jsonArray.length(); i++) {
    JSONObject explrObject = jsonArray.getJSONObject(i);
}
kyogs avatar Mar 25 '2013 07:03 kyogs

Cadena de entrada

[
   {
      "userName": "sandeep",
      "age": 30
   }, 
   {
      "userName": "vivan",
      "age": 5
   }
]

Manera sencilla de convertir cadenas a JSON

public class Test
{

    public static void main(String[] args) throws JSONException
    {
        String data = "[{\"userName\": \"sandeep\",\"age\":30},{\"userName\": \"vivan\",\"age\":5}]  ";
        JSONArray jsonArr = new JSONArray(data);

        for (int i = 0; i < jsonArr.length(); i++)
        {
            JSONObject jsonObj = jsonArr.getJSONObject(i);

            System.out.println(jsonObj);
        }

    }
}

Producción

{"userName":"sandeep","age":30}
{"userName":"vivan","age":5}
Sandeep Bhardwaj avatar Oct 24 '2015 07:10 Sandeep Bhardwaj

Usando json lib: -

String data="[{"A":"a","B":"b","C":"c","D":"d","E":"e","F":"f","G":"g"}]";
Object object=null;
JSONArray arrayObj=null;
JSONParser jsonParser=new JSONParser();
object=jsonParser.parse(data);
arrayObj=(JSONArray) object;
System.out.println("Json object :: "+arrayObj);

Usando la biblioteca GSON: -

Gson gson = new Gson();
String data="[{\"A\":\"a\",\"B\":\"b\",\"C\":\"c\",\"D\":\"d\",\"E\":\"e\",\"F\":\"f\",\"G\":\"g\"}]";
JsonParser jsonParser = new JsonParser();
JsonArray jsonArray = (JsonArray) jsonParser.parse(data);
Aravind Cheekkallur avatar Oct 29 '2013 11:10 Aravind Cheekkallur

deberá convertir la cadena dada en JSONObjectlugar de JSONArrayporque la cadena actual contiene JsonObjectcomo elemento raíz en lugar de JsonArray:

JSONObject jsonObject = new JSONObject(readlocationFeed);
ρяσѕρєя K avatar Mar 25 '2013 07:03 ρяσѕρєя K