如何使用此特定结构创建JSON数组?

时间:2017-06-14 05:11:52

标签: java arrays json jackson

我打算创建一个具有以下结构的JSON数组。元数据标签将在所有条目中保持不变。我很难过。

@function calculateRem($size)
  $remSize: $size / 16px

  @return $remSize * 1rem

=font-size($size)
  font-size: $size
  font-size: calculateRem($size)

2 个答案:

答案 0 :(得分:1)

public class yourJsonObject {

private Map<String, String> metadata;

private String name;

private string id;

public yourJsonObject() {

}

public Map<String, String> getMetadata(){
return metadata;
}

public void setMetadata(Map<String, String> metadata){
this.metadata = metadata;
}

public String getName(){
return name;
}

public void setName(String name) {
this.name = name;
}

public String getId(){
return id;
}

public void setId(String id){
this.id = id;
}

}

然后在其他地方你可以这样做:

ObjectMapper mapper = new ObjectMapper(); // create once, reuse
yourJsonObject example = new yourJsonObject(); // have your POJO you want to save
mapper.writeValue(new File("result.json"), example);

要阅读,您可以使用:

ObjectMapper mapper = new ObjectMapper(); // create once, reuse
yourJsonObject value = mapper.readValue(new File("data.json"), yourJsonObject .class);

两个片段都来自杰克逊自己的链接维基文章。

如果配置正确,杰克逊应该能够自动将此POJO解析为等效的JSON。 注意:杰克逊必须在全球注册,并且必须了解它。请阅读您使用的维基知识... Jackson in 5 Minutes

否则你可以像Neeraj那样手动构建JSON。

答案 1 :(得分:0)

JSONArray array = new JSONArray(); // Create JSONArray Object

JSONObject jsonObject = new JSONObject(); // Your JSONObject which gets added into array
jsonObject.put("metadata",new MetaDataCustomClass("SomeRandomStringValue"));
jsonObject.put("name", "Neeraj");
jsonObject.put("id", "123");

array.add(jsonObject); // Here you push the jsonObject into Array.

注意: MetaDataCustomClass只是一个具有String类型的Value实例变量的自定义类。

Class MetaDataCustomClass {

   private String value;

   public MetaDataCustomClass(String value){
       this.value = value;
   }

}