我正在尝试生成具有以下结构的JSON:
"rows": [
{
"object": {
"id": "1"
},
"values": [
"111",
"reg text",
"11"
]
}
]
和下面的代码:
.writeStartObject()
.writeStartArray("rows")
.writeStartObject() //here i can`t name the object
.write("id", "'1'@1000")
.writeEnd()
.writeStartArray() //here i can`t name the array
.write("fax")
.write("646 555-4567")
.writeEnd()
.writeEnd()
.writeEnd();
当我尝试在括号内添加对象和数组标题时,出现异常“ JSON生成期间非法方法,在当前上下文IN_ARRAY中无效”。 如何像我一样生成JSON?
答案 0 :(得分:1)
此代码在您的问题中产生JSON输出:
generator.writeStartObject()
.writeStartArray("rows")
.writeStartObject()
.writeStartObject("object")
.write("id", "1")
.writeEnd()
.writeStartArray("values")
.write("111")
.write("reg text")
.write("11")
.writeEnd()
.writeEnd()
.writeEnd()
.writeEnd();
第一个writeStartObject
开始于rows
数组内部的匿名对象。第二个writeStartObject
产生:
"object": {
[...]
}
关于您的评论:
.writeStartObject() //here i can`t name the object
[...]
.writeStartArray() //here i can`t name the array
您不能指定名称,因为对象和数组都是数组中的值。关键是将它们都封装在一个对象中,然后它们都可以(实际上,必须)具有名称。