Java 如何从JSONObject获取数据

Java 如何从JSONObject获取数据,java,json,Java,Json,这是我可以访问的JSON: [{"Nombre":"Craic Irish Pub","Descripcion":"Pub estilo Irlandes","Telefono":"234234","SitioWeb":"","Horario":"Viernes - Sabados 17:00- 24:00","Parqueo":"No","Ubicacion":"San Jose","Reservas":"Si","_id":"5449b3334d50a38754000003",

这是我可以访问的JSON:

[{"Nombre":"Craic Irish Pub","Descripcion":"Pub estilo     Irlandes","Telefono":"234234","SitioWeb":"","Horario":"Viernes - Sabados 17:00-    24:00","Parqueo":"No","Ubicacion":"San Jose","Reservas":"Si","_id":"5449b3334d50a38754000003","__v":0},   {"Nombre":"TicoPub","Descripcion":"Pub    Moderno","Telefono":"34534534","SitioWeb":"ticopub.com","Horario":"Viernes - Sabados 17:00-    24:00","Parqueo":"Si","Ubicacion":"Lindora","Reservas":"Si","_id":"5449b3cd4d50a38754000006","__v":0}]
我可以读取它并将其保存为名为json的JSONObject,但我不能这样做: JSONArray值=json.getJSONArray0
如何访问它?

根据您键入的内容,我假设您使用的是json.org的库。正如Sotirios指出的,只要json字符串中有“[]”,就意味着您正在使用数组。您必须首先创建一个Json数组,然后才能访问拥有两个Json数组的单个对象。见下文:

String jsonString = "[{'Nombre':'Craic Irish Pub','Descripcion':'Pub estilo  " +
        "   Irlandes','Telefono':'234234','SitioWeb':'','Horario':'Viernes - Sabados 17:00-    24:00'," +
        "'Parqueo':'No','Ubicacion':'San Jose','Reservas':'Si','_id':'5449b3334d50a38754000003','__v':0},  " +
        " {'Nombre':'TicoPub','Descripcion':'Pub    Moderno','Telefono':'34534534','SitioWeb':'ticopub.com','Horario':'Viernes - Sabados 17:00-    24:00'," +
        "'Parqueo':'Si','Ubicacion':'Lindora','Reservas':'Si','_id':'5449b3cd4d50a38754000006','__v':0}]";

JSONArray array = new JSONArray(jsonString);
JSONObject obj = array.getJSONObject(0);
String nombre = obj.getString("Nombre");
System.out.println(nombre); //prints 'Craic Irish Pub'

您绝对不能将该JSON存储在JSONObject中,因为它不是JSON对象。它是一个JSON数组。所以使用JSONArray来存储它。

我不能还是不应该?因为我可以将其存储为JSONobjct@DiegöRivera如果您的JSON字符串的格式为[…],那么您肯定无法从中创建JSONObject。您使用哪种api来实现此功能!!转到json.org学习json语法。然后找出为什么您拥有的不是JSON对象而是JSON数组,而它内部拥有的不是JSON数组而是JSON对象。