首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中HashMap数据格式下JSON数据解析与存取

Java中HashMap数据格式下JSON数据解析与存取
EN

Stack Overflow用户
提问于 2019-09-25 17:57:07
回答 1查看 60关注 0票数 0

从Java中的HashMap中解析和访问下面的JSON数据格式,以便验证键与它们的值的映射。

以下是JSON字符串:

代码语言:javascript
复制
{
    "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数据感到困惑。

代码语言:javascript
复制
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));
}
EN

回答 1

Stack Overflow用户

发布于 2019-10-09 03:42:17

您可以同时使用bson和绕过hashmap。我很好奇人们是如何使用hashmap做到这一点的。

代码语言:javascript
复制
 //import java.util.ArrayList;
 //import org.bson.Document;

加载您的json

代码语言:javascript
复制
 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对象转换为适当的类型。

代码语言:javascript
复制
 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)));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58095783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档