我试图弄清楚如何使用Java在数组内部创建嵌套数组。见下文:
{
"fruit": [
"apple"
],
"color": [
[ <------ trying this!
"red",
"green"
] <------ trying this?
],
"edible": true
}
但是我只能做到这一点:
{
"fruit": [
"apple"
],
"color": [
"red",
"green"
],
"edible": true
}
到目前为止,这是我拥有的代码:
具有创建json对象的逻辑的类
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
public class FruitInventory {
public List<String> fruit;
public List<String> color;
private String edible;
public FruitInventory() {
}
public FruitInventory(List<String> fruit, List<String> color, String edible) {
this.fruit = fruit;
this.color = color;
this.edible = edible;
}
@JsonProperty("fruit")
public List<String> getfruit() {
return fruit;
}
@JsonProperty("fruit")
public void setfruit(List<String> fruit) {
this.fruit = fruit;
}
@JsonProperty("color")
public List<String> getcolor() {
return color;
}
@JsonProperty("color")
public void setcolor(List<String> color) {
this.color = color;
}
@JsonProperty("edible")
public String getedible() {
return edible;
}
@JsonProperty("edible")
public void setedible(String edible) {
this.edible = edible;
}
}
打印json的方法
public static void main(String[] args) throws JsonProcessingException {
FruitInventory fruitInventory = new FruitInventory();
String json;
ObjectMapper mapper = new ObjectMapper();
List<String> fruit = new ArrayList<>();
fruit.add("apple")
List<String> color = new ArrayList<>();
color.add("red");
color.add("green");
fruitInventory.setColumnNames(fruit);
fruitInventory.setValues(color);
json = mapper.writeValueAsString(fruitInventory);
System.out.println(json);
}
我不确定是否应该在color
内创建一个空数组列表,或者它是否适合我的代码示例。如果有人可以提出建议,我希望您适当地修改/修改我的代码,因为这对我来说更容易/更有意义。感谢任何帮助,谢谢! :)
答案 0 :(得分:3)
根据您的json结构将public List<String> color;
更改为public List<List<String>> color;
。
填充它的逻辑:
List<String> color = new ArrayList<>();
color.add("red");
color.add("green");
fruitInventory.setValues( Arrays.asList(color));