我如何使用org.json制作Java的JSON,看起来像下面的示例?

来源:爱站网时间:2021-09-16编辑:网友分享
因此,我尝试使用Java进行如下操作,但输出效果不是很好。在这些代码示例中,我尝试使用以下内容制作一个json文件:String name =“ usericals.json”; ...

问题描述


所以我尝试使用java进行如下操作,但是输出效果不是很好。

我尝试使用以下代码示例制作json文件:

        String name = "usericals.json";
        JSONObject jsonObj = new JSONObject();

        JSONArray scene = new JSONArray();
        JSONArray element = new JSONArray();


        jsonObj.put("scene", scene);
        for (int i = 0; i 

我正在获取的JSON文件...

[
    "scene",
    {"element": [
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false"
    ]},
    {"element": [
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false"
    ]},
    {"element": [
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false"
    ]},
    {"element": [
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false"
    ]},
    {"element": [
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false",
        "false"
    ]}
]

我想制作一个看起来像这样的json文件,但是我用正确的代码在数组之上创建的文件无法正确显示。有人有想法或建议吗?

我想要的JSON文件:

{
  "scene": [
    {
      "id": 0,
      "calendar_event": "urlaub",
      "element": [
        {
          "anything": ""
        },
        {
          "anything": ""
        }
      ]
    },
    {
      "id": 1,
      "calendar_event": "urlauburlaub",
      "element": [
        {
          "anything": ""
        },
        {
          "anything": ""
        }
      ]
    },
    {
      "id": 2,
      "calendar_event": "urlauburlauburlaub",
      "element": [
        {
          "anything": ""
        },
        {
          "device": "",
          "anything": ""
        }
      ]
    },
    {
      "id": 3,
      "calendar_event": "urlauburlauburlauburlaub",
      "element": [
        {
          "anything": ""
        },
        {
          "anything": ""
        }
      ]
    }
  ]
}

任何帮助将不胜感激。

思路一:


我建议为此使用库。杰克逊或GSON将是一个不错的选择。

您可以创建POJO,然后使用Jackson的ObjectMapper来代替按字段手动创建json字段。示例:

public class Car {

    private String color;
    private String type;

    // standard getters setters
}

然后

ObjectMapper objectMapper = new ObjectMapper();
Car car = new Car("yellow", "renault");
objectMapper.writeValue(new File("target/car.json"), car);

哪个会给

{"color":"yellow","type":"renault"}

Google有很多杰克逊教程!

思路二:


[递归使用JSONObject。尝试这样的事情(我添加了一些额外的缩进,以便可以轻松阅读,但是在实际项目中最好使用函数):

JSONObject json = new JSONObject();
  JSONArray scene = new JSONArray();
    JSONObject node = new JSONObject();
    node.put("id", 0);
    node.put("calendar_event", "urlaub");
      JSONArray element = new JSONArray();
        JSONObject enode = new JSONObject();
        enode.put("anything", "");
      element.add(enode);
      //...
    node.put("element", element);
  scene.add(node);
json.put("scene", scene);
//...

注意,您手动生成JSON,但是还有其他库可以扫描对象以生成JSON。根据您的需求,它可能会更容易一些,但请记住,进行此操作将使您负担所有费用,因为您将需要在内存中保留同一棵树的两个副本。使用普通的Java对象也可能处理层次结构。

上一篇:如何将postgresSql查询重写为Spring-data jpa查询

下一篇:为什么我的Java repaint()方法不起作用?

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载