创建基于逗号分隔的字符串在java中的json?

森希尔

在下面给出的文件中输入数据

1985,Adv,Blue
1985,Adv,gill
1985,Adv,mon
1985,Cal,20
1985,Cal,25
1985,Cape,Din
1966,Ray,One
1966,Ray,bel
1966,Ray,Reb
1966,Sum,37
1966,Tar,Black
1966,Tar,Watch
1967,Yachts,Nut
1967,Yachts,Shark
1967,Cal,20
1967,Cal,25
1967,Cal,28

预期输出为带有格式数据的json文件,例如

{
    "1985" : {
        "Adv" : ["Blue", "gill", "mon"],
        "Cal" : ["20", "25"],
        "Cape" : ["Din"]
    },
    "1966" : {
        "Ray" : ["One", "bel", "Reb"],
        "Sum" : ["37"],
        "Tar" : ["Black", "Watch"]
    },
    "1967" : {
        "Yachts" : ["Nut", "Shark"],
        "Cal" : ["20", "25", "28"]
    }
}

我有1000多行数据。需要使用一些循环。如何在Java中执行此操作

巴布卢·辛格(Bablu Singh):

您需要导入一个外部库 org.json.JSONObject

 File myObj = new File("test.txt");
            Scanner myReader = new Scanner(myObj);
            List<String> stringList = new ArrayList<>();
            while (myReader.hasNextLine()) {
                String data = myReader.nextLine();
                stringList.add(data);
            }
            Map<String, Map<String,List<String>>> mapStringToObject = new HashMap<>();
            for(String string : stringList){
                String[] data = string.split(",");
                if(!mapStringToObject.containsKey(data[0])){
                    Map<String,List<String>>  mapOfLists = new HashMap<>();
                    List<String> list = new ArrayList<>();
                    list.add(data[2]);
                    mapOfLists.put(data[1],list);
                    mapStringToObject.put(data[0],mapOfLists);
                }else{
                    if(!mapStringToObject.get(data[0]).containsKey(data[1])){
                        List<String> list = new ArrayList<>();
                        list.add(data[2]);
                        mapStringToObject.get(data[0]).put(data[1],list);
                    }else
                        mapStringToObject.get(data[0]).get(data[1]).add(data[2]);
                }
            }
            JSONObject json = new JSONObject(mapStringToObject);
            System.out.println(json);
            myReader.close();

test.txt

1985,Adv,Blue
1985,Adv,gill
1985,Adv,mon
1985,Cal,20
1985,Cal,25
1985,Cape,Din
1966,Ray,One
1966,Ray,bel
1966,Ray,Reb
1966,Sum,37
1966,Tar,Black
1966,Tar,Watch
1967,Yachts,Nut
1967,Yachts,Shark
1967,Cal,20
1967,Cal,25
1967,Cal,28

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在SQL存储过程中基于逗号分隔的字符串动态创建表

如何从 Python 列表中创建逗号分隔的字符串?

如何从列表中的项目创建逗号分隔的字符串

如何在Java中用逗号分隔的字符串值创建json?

从逗号分隔的字符串创建列表

用Java中逗号分隔的字符串创建枚举列表

在Java中将逗号分隔的字符串转换为json

java比较逗号分隔的字符串

MySQL:IN()中的逗号分隔字符串

从逗号分隔的字符串中删除@,$

JavaScript:如何从json字符串中获取逗号分隔的字符串?

删除逗号分隔的字符串中的字符串

您将如何从字符串列表中创建逗号分隔的字符串?

在vb.net中,如何基于逗号分隔的字符串从目录中获取文件?

从字符串化的 JSON 中删除逗号但不是逗号分隔数组

从逗号分隔的字符串中删除结尾的逗号

Java:分割逗号分隔的字符串,但忽略引号中的逗号

在每行中以R分隔逗号分隔的字符串

逗号分隔的字符串

PHP:创建字符串,其值用逗号分隔,但字符串末尾不带逗号

Python:解析字符串以创建逗号分隔值

从自定义集合创建逗号分隔的字符串

jQuery:如何从逗号分隔的字符串创建索引数组

PHP:如何用逗号分隔的字符串创建数组?

从变量逗号分隔的ansible创建字符串

从多维数组创建逗号分隔的字符串

如何在C中创建将逗号分隔的字符串转换为字符串数组的方法

如何从jquery javascript中的数组创建逗号分隔的字符串

从对象列表中创建一个逗号分隔的字符串