Tengo una pregunta inusual que se ve de la siguiente manera:

Pregunta 1: ¿Cómo puedo dividir una cadena de la manera correcta para que las entradas json-File estén separadas una de otra?

O Pregunta: ¿Cómo convierto una Cadena a JSONArray?

La JSON:

[
   {
   "id":"123483",
      "content":{
         "amount":"460",
         "price":"2.15",
         "name":"Post-it Block weiß",
         "weight":"0.3",
         "category":"Notizzettel"
 } 
},
   {
      "id":"501993",
      "content":{
         "amount":"83",
         "price":"25.0",
         "name":"Trennstreifen 5x 100 bunt",
         "weight":"0.024",
         "category":"Register"

   }

}
]

Lo que probé: // el contenido encapsula con éxito todo el contenido de json.

Path path = Paths.get("src/com/json/inventory.json");
String content = new String(Files.readAllBytes(path), Charset.defaultCharset());


JSONArray jsonArray = new JSONArray(); 
JSONObject jsnobject = new JSONObject(content);
jsonArray.put(jsnobject);

Los errores con JSONArray: Errores

0
user8278795 19 feb. 2020 a las 17:10

2 respuestas

La mejor respuesta

Su contenido es una matriz, no un solo objeto.

Prueba new JSONArray(content);

O use una biblioteca como Jackson o Gson para leer el archivo en una lista de clases POJO

También tenga en cuenta que la carpeta src no existe en tiempo de ejecución para su código. El diseño estándar para colocar archivos de recursos se ve así

src
  main
    java 
      Code.java 
  resources
    file.json

Y usas ClassLoader para leer el archivo

2
cricket_007 19 feb. 2020 a las 14:28

Debe hacer new JSONArray(content); no new JSONObject(content);

Porque si lo haces de la segunda manera, Java intenta convertir la matriz en un solo objeto.

Puede ver más información en esta publicación

0
XxTheZokoxX 19 feb. 2020 a las 14:18