gpt4 book ai didi

java - Java中HashMap解析并访问以下JSON数据格式

转载 作者:行者123 更新时间:2023-12-02 00:14:12 26 4
gpt4 key购买 nike

从 Java 中的 HashMap 解析并访问以下 JSON 数据格式,以验证键与其值的映射。

下面是 JSON 字符串:

{
"Inputs": {
"TSVInput": {
"ColumnNames": ["Bearing_11", "Bearing_12", "Bearing_21", "Bearing_22", "Bearing_31", "Bearing_32", "Bearing_41", "Bearing_42"],
"Values": [[0.071, -0.054, 0.015, -0.144, -0.227, 0.012, -0.076, -0.073]]
}
},
"GlobalParameters": {}
}

下面的源代码在访问特定字段时不会进行映射并给出空值。我对如何解析这个嵌套的 JSON 数据感到困惑。

File file = null;
try {
BufferedReader br = new BufferedReader(new FileReader(fullFileName));

String readLine = "";
System.out.println("Reading file using Buffered Reader");

while ((readLine = br.readLine()) != null) {
//System.out.println(readLine);
String jsonString = readline;

//System.out.println(jsonString);
Gson gson = new Gson();
HashMap<String, Object> myMap = gson.fromJson(jsonString, new TypeToken<HashMap<String, Object>>(){}.getType());
System.out.println(myMap.get(1));
}

最佳答案

您可以一起使用 bson 并绕过 hashmap。我很好奇人们如何使用 HashMap 来做到这一点。

 //import java.util.ArrayList;
//import org.bson.Document;

加载你的json

 Document root = Document.parse("{ \"Inputs\" : { \"TSVInput\" : { \"ColumnNames\" : [\"Bearing_11\", \"Bearing_12\", \"Bearing_21\", \"Bearing_22\", \"Bearing_31\", \"Bearing_32\", \"Bearing_41\", \"Bearing_42\"], \"Values\" : [[0.071, -0.054, 0.015, -0.144, -0.227, 0.012, -0.076, -0.073]] } }, \"GlobalParameters\" : { } }");

您可以将所有 json 对象转换为适当的类型。

 System.out.println(((String)((ArrayList)((Document)((Document)root.get("Inputs")).get("TSVInput")).get("ColumnNames")).get(0)));
System.out.println(((String)((ArrayList)((Document)((Document)root.get("Inputs")).get("TSVInput")).get("ColumnNames")).get(1)));
System.out.println(((String)((ArrayList)((Document)((Document)root.get("Inputs")).get("TSVInput")).get("ColumnNames")).get(2)));
System.out.println(((String)((ArrayList)((Document)((Document)root.get("Inputs")).get("TSVInput")).get("ColumnNames")).get(3)));
System.out.println(((String)((ArrayList)((Document)((Document)root.get("Inputs")).get("TSVInput")).get("ColumnNames")).get(4)));
System.out.println(((String)((ArrayList)((Document)((Document)root.get("Inputs")).get("TSVInput")).get("ColumnNames")).get(5)));
System.out.println(((String)((ArrayList)((Document)((Document)root.get("Inputs")).get("TSVInput")).get("ColumnNames")).get(6)));
System.out.println(((String)((ArrayList)((Document)((Document)root.get("Inputs")).get("TSVInput")).get("ColumnNames")).get(7)));
System.out.println(((int)((ArrayList)((Document)((Document)root.get("Inputs")).get("TSVInput")).get("Values")).get(0)));

关于java - Java中HashMap解析并访问以下JSON数据格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58095783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com