Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中JSON的多维数组_Java_Arrays_Minecraft - Fatal编程技术网

Java中JSON的多维数组

Java中JSON的多维数组,java,arrays,minecraft,Java,Arrays,Minecraft,我是Java新手,但正在开发一个Minecraft插件,我需要存储一些数据,并决定使用json最简单,因为我无法轻松访问插件的数据库 我正试图创建一个基本的JSON to(多维)数组,这样我就可以保存我的数据——但是所有合并最终都会将自己附加到顶级的“AreaData”选项卡上,而无法正确创建我要查找的数组 下面是我正在尝试的部分代码,我想知道HashMap是否是一个好主意 import java.util.HashMap; public class AreaHash { prote

我是Java新手,但正在开发一个Minecraft插件,我需要存储一些数据,并决定使用json最简单,因为我无法轻松访问插件的数据库

我正试图创建一个基本的JSON to(多维)数组,这样我就可以保存我的数据——但是所有合并最终都会将自己附加到顶级的“AreaData”选项卡上,而无法正确创建我要查找的数组

下面是我正在尝试的部分代码,我想知道HashMap是否是一个好主意

import java.util.HashMap;

public class AreaHash {

    protected HashMap<String, String> AreaData = new HashMap<String, String>();

    public AreaHash(String name, String Owner, Integer X, Integer Y, Integer Z){
        AreaData.put("Name", name);
        AreaData.put("Owner", Owner);
        AreaData.put("X", X.toString());
        AreaData.put("Y", Y.toString());
        AreaData.put("Z", Z.toString());
    }
}
JSON输出

{
  "AreaHash": {
    "Name": "Test",
    "Owner": "gold",
    "X": "10",
    "Y": "15",
    "Z": "-1000"
  }, 
}
我实际想要生产的产品

{
  "1": [
    "Name": true,
    "Owner": "gold",
    "X": "10",
    "Y": "15",
    "Z": "-1000"
  ],
 "2": [
    "Name": true,
    "Owner": "silver",
    "X": "2110",
    "Y": "15",
    "Z": "-1200"
  ],
 "3": [
    "Name": true,
    "Owner": "test",
    "X": "-110",
    "Y": "70",
    "Z": "-1000"
  ],
}

您可以创建
AreaHash
对象的映射,然后将其转换为JSON字符串

Map<String, AreaHash> data = new HashMap<>();
data.put("1", new AreaHash(...));
data.put("2", new AreaHash(...));
data.put("3", new AreaHash(...));

String jsonString = new Gson().toJson(data);
System.out.println(jsonString);
另外,请注意,所需的输出不是有效的JSON

[
  "Name": true,
  "Owner": "gold",
  "X": "10",
  "Y": "15",
  "Z": "-1000"
] // this will not parse

如何使用多个
AreaHash
对象构造对象?
{
  "1": {
    "Name": "Test",
    "Owner": "gold",
    "X": "10",
    "Y": "10",
    "Z": "0"
  },
  "2": {
    "Name": "Test",
    "Owner": "silver",
    "X": "10",
    "Y": "10",
    "Z": "-10"
  },
  "3": {
    "Name": "Test",
    "Owner": "test",
    "X": "10",
    "Y": "10",
    "Z": "-10"
  }
}
[
  "Name": true,
  "Owner": "gold",
  "X": "10",
  "Y": "15",
  "Z": "-1000"
] // this will not parse