从java中的json项获取值
我有一个json文件,例如:从java中的json项获取值,java,json,list,Java,Json,List,我有一个json文件,例如: { "A":"-0.4", "B":"-0.2", "C":"-0.2", "D":"X", "E":"0.2", "F":"0.2", "J":"0.3" } 我希望在通过函数调用列表json时返回它的每个元素。 我做了一个函数来实现这一点: public JSONObject my_function() { JSONParser parser = new JSONParser(); List<JSONObject&
{
"A":"-0.4",
"B":"-0.2",
"C":"-0.2",
"D":"X",
"E":"0.2",
"F":"0.2",
"J":"0.3"
}
我希望在通过函数调用列表json时返回它的每个元素。
我做了一个函数来实现这一点:
public JSONObject my_function() {
JSONParser parser = new JSONParser();
List<JSONObject> records = new ArrayList<JSONObject>();
try (FileReader reader = new FileReader("File.json")) {
//Read JSON file
Object obj = parser.parse(reader);
JSONObject docs = (JSONObject) obj;
LOGGER.info("read elements" + docs); // it display all a list of a json file like this: {"A":"-0.4","B":"-0.2","C":"-0.2","D":"X","E":"0.2","F":"0.2","J":"0.3"}
for (int i = 0; i < docs.size(); i++) {
records.add((JSONObject) docs.get(i));
System.out.println((records)); // it return null
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
LOGGER.info("The first element of a list is:" +records.get(0)); // return null
return records.get(0);
谢谢据我所知,在Java中只能使用类的方法。 如果您想通过第一个元素获得第二个元素,您应该在类中创建两个方法,如
class Main {
Map<String, String> records = new HashMap<>();
public JSONObject my_function() {
// your realization where you should insert your pairs into Map.
}
public String get(String firstElement){
return map.getValue(firstElement);
}
}
class someOtherClass {
Main main = new Main();
main .my_function();
main .get("A");
}
主类{
映射记录=新的HashMap();
公共JSONObject my_函数(){
//您应该在地图中插入对的位置实现。
}
公共字符串get(字符串firstElement){
返回map.getValue(firstElement);
}
}
给别人上课{
Main Main=新Main();
main.my_函数();
main.get(“A”);
}
首先,您需要一个用于映射的类
public class Json {
private String a;
private String b;
private String c;
private String d;
private String e;
private String f;
private String j;
//getters and setters
}
然后在你的工人阶级
ObjectMapper mapper = new ObjectMapper();
//JSON from file to Object
Json jsn = mapper.readValue(new File("File.json"), Json.class);
然后你可以用通常的方式使用那个物体
这是我使用的依赖项
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
com.fasterxml.jackson.core
您的文档不是列表对象,而是HashMap。不能使用该对象的索引对其进行迭代。您可以使用get(键)。您的密钥是a、b、c等。使用库并将给定的JSON
反序列化到Map
。见相关问题:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>