在Java中解析Json字段并存储为HashMap数组
我需要解析一个Json,但结构未知。它们是确定数字和字段名的一种方法吗?我想解析它并将其存储为HashMap的数组。 我有下面的代码,但它只在我知道单个行中字段的名称时起作用在Java中解析Json字段并存储为HashMap数组,java,json,Java,Json,我需要解析一个Json,但结构未知。它们是确定数字和字段名的一种方法吗?我想解析它并将其存储为HashMap的数组。 我有下面的代码,但它只在我知道单个行中字段的名称时起作用 import java.io.*; import java.nio.file.Path; import java.nio.file.Paths; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Array
import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.ArrayList;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public ArrayList<LinkedHashMap<String,String>> JsonFileToJsonRows()
{
JSONParser parser = new JSONParser();
ArrayList<LinkedHashMap<String ,String>> Json_rows = new ArrayList<LinkedHashMap<String,String>>() ;
try
{
JSONArray jsonarray = (JSONArray) parser.parse(new FileReader("filename"));
for (Object row : jsonarray)
{
JSONObject rowjson = (JSONObject) row;
String field1 = (String) rowjson.get("field1");
String field2 = (String) rowjson.get("field2");
LinkedHashMap <String, String> extend_row =new LinkedHashMap <String, String>();
extend_row.put("field1",field1);
extend_row.put("field2", field2);
Json_rows.add(extend_row);
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (ParseException e)
{
e.printStackTrace();
}
return Json_rows;
}
}
如何找到field1和field2的字段名。
我的Json结构是一个Json对象数组。
[{field1:field1data,field2:field2data},
{field1:field1data,field2:field2data}]JSONObject扩展HashMap。这应该向您展示如何迭代JSONObject以获取字段/键:的可能重复项