Java: Generating JSON: Getting exception when try to name object & array
I`m trying to generate JSON with structure like this:
"rows": [
{
"object": {
"id": "1"
},
"values": [
"111",
"reg text",
"11"
]
}
]
and here are the code:
.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();
When i tried to add object & array headers inside the brackets, i got an exception "Illegal method during JSON generation, not valid in current context IN_ARRAY".
How to generate JSON like mine?
java json javax.json
add a comment |
I`m trying to generate JSON with structure like this:
"rows": [
{
"object": {
"id": "1"
},
"values": [
"111",
"reg text",
"11"
]
}
]
and here are the code:
.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();
When i tried to add object & array headers inside the brackets, i got an exception "Illegal method during JSON generation, not valid in current context IN_ARRAY".
How to generate JSON like mine?
java json javax.json
3
Please add a tag for which library you are using for json.
– CS_noob
Nov 13 '18 at 12:50
.writeStartArray("rows") .writeStartObject() //here i can`t name the object .write("id", "'1'@1000") .writeEnd() -- your ending the object, but not the array, that's why you can't name the new array, end the array first
– Blagoj Atanasovski
Nov 13 '18 at 12:53
So I can`t use named array inside named array?
– extraflight95
Nov 13 '18 at 13:02
add a comment |
I`m trying to generate JSON with structure like this:
"rows": [
{
"object": {
"id": "1"
},
"values": [
"111",
"reg text",
"11"
]
}
]
and here are the code:
.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();
When i tried to add object & array headers inside the brackets, i got an exception "Illegal method during JSON generation, not valid in current context IN_ARRAY".
How to generate JSON like mine?
java json javax.json
I`m trying to generate JSON with structure like this:
"rows": [
{
"object": {
"id": "1"
},
"values": [
"111",
"reg text",
"11"
]
}
]
and here are the code:
.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();
When i tried to add object & array headers inside the brackets, i got an exception "Illegal method during JSON generation, not valid in current context IN_ARRAY".
How to generate JSON like mine?
java json javax.json
java json javax.json
edited Nov 13 '18 at 12:53
extraflight95
asked Nov 13 '18 at 12:47
extraflight95extraflight95
31
31
3
Please add a tag for which library you are using for json.
– CS_noob
Nov 13 '18 at 12:50
.writeStartArray("rows") .writeStartObject() //here i can`t name the object .write("id", "'1'@1000") .writeEnd() -- your ending the object, but not the array, that's why you can't name the new array, end the array first
– Blagoj Atanasovski
Nov 13 '18 at 12:53
So I can`t use named array inside named array?
– extraflight95
Nov 13 '18 at 13:02
add a comment |
3
Please add a tag for which library you are using for json.
– CS_noob
Nov 13 '18 at 12:50
.writeStartArray("rows") .writeStartObject() //here i can`t name the object .write("id", "'1'@1000") .writeEnd() -- your ending the object, but not the array, that's why you can't name the new array, end the array first
– Blagoj Atanasovski
Nov 13 '18 at 12:53
So I can`t use named array inside named array?
– extraflight95
Nov 13 '18 at 13:02
3
3
Please add a tag for which library you are using for json.
– CS_noob
Nov 13 '18 at 12:50
Please add a tag for which library you are using for json.
– CS_noob
Nov 13 '18 at 12:50
.writeStartArray("rows") .writeStartObject() //here i can`t name the object .write("id", "'1'@1000") .writeEnd() -- your ending the object, but not the array, that's why you can't name the new array, end the array first
– Blagoj Atanasovski
Nov 13 '18 at 12:53
.writeStartArray("rows") .writeStartObject() //here i can`t name the object .write("id", "'1'@1000") .writeEnd() -- your ending the object, but not the array, that's why you can't name the new array, end the array first
– Blagoj Atanasovski
Nov 13 '18 at 12:53
So I can`t use named array inside named array?
– extraflight95
Nov 13 '18 at 13:02
So I can`t use named array inside named array?
– extraflight95
Nov 13 '18 at 13:02
add a comment |
1 Answer
1
active
oldest
votes
This code produces the JSON output in your question:
generator.writeStartObject()
.writeStartArray("rows")
.writeStartObject()
.writeStartObject("object")
.write("id", "1")
.writeEnd()
.writeStartArray("values")
.write("111")
.write("reg text")
.write("11")
.writeEnd()
.writeEnd()
.writeEnd()
.writeEnd();
The first writeStartObject begins the anonymous object that's inside the rows array. The second writeStartObject produces:
"object": {
[...]
}
With regards to your comments:
.writeStartObject() //here i can`t name the object
[...]
.writeStartArray() //here i can`t name the array
You can't specify a name because both the object and array are values in an array. The key is to enclose both of them in an object, and then both of them can (in fact, must) have a name.
Great, thanks a lot!
– extraflight95
Nov 13 '18 at 13:27
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53281346%2fjava-generating-json-getting-exception-when-try-to-name-object-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This code produces the JSON output in your question:
generator.writeStartObject()
.writeStartArray("rows")
.writeStartObject()
.writeStartObject("object")
.write("id", "1")
.writeEnd()
.writeStartArray("values")
.write("111")
.write("reg text")
.write("11")
.writeEnd()
.writeEnd()
.writeEnd()
.writeEnd();
The first writeStartObject begins the anonymous object that's inside the rows array. The second writeStartObject produces:
"object": {
[...]
}
With regards to your comments:
.writeStartObject() //here i can`t name the object
[...]
.writeStartArray() //here i can`t name the array
You can't specify a name because both the object and array are values in an array. The key is to enclose both of them in an object, and then both of them can (in fact, must) have a name.
Great, thanks a lot!
– extraflight95
Nov 13 '18 at 13:27
add a comment |
This code produces the JSON output in your question:
generator.writeStartObject()
.writeStartArray("rows")
.writeStartObject()
.writeStartObject("object")
.write("id", "1")
.writeEnd()
.writeStartArray("values")
.write("111")
.write("reg text")
.write("11")
.writeEnd()
.writeEnd()
.writeEnd()
.writeEnd();
The first writeStartObject begins the anonymous object that's inside the rows array. The second writeStartObject produces:
"object": {
[...]
}
With regards to your comments:
.writeStartObject() //here i can`t name the object
[...]
.writeStartArray() //here i can`t name the array
You can't specify a name because both the object and array are values in an array. The key is to enclose both of them in an object, and then both of them can (in fact, must) have a name.
Great, thanks a lot!
– extraflight95
Nov 13 '18 at 13:27
add a comment |
This code produces the JSON output in your question:
generator.writeStartObject()
.writeStartArray("rows")
.writeStartObject()
.writeStartObject("object")
.write("id", "1")
.writeEnd()
.writeStartArray("values")
.write("111")
.write("reg text")
.write("11")
.writeEnd()
.writeEnd()
.writeEnd()
.writeEnd();
The first writeStartObject begins the anonymous object that's inside the rows array. The second writeStartObject produces:
"object": {
[...]
}
With regards to your comments:
.writeStartObject() //here i can`t name the object
[...]
.writeStartArray() //here i can`t name the array
You can't specify a name because both the object and array are values in an array. The key is to enclose both of them in an object, and then both of them can (in fact, must) have a name.
This code produces the JSON output in your question:
generator.writeStartObject()
.writeStartArray("rows")
.writeStartObject()
.writeStartObject("object")
.write("id", "1")
.writeEnd()
.writeStartArray("values")
.write("111")
.write("reg text")
.write("11")
.writeEnd()
.writeEnd()
.writeEnd()
.writeEnd();
The first writeStartObject begins the anonymous object that's inside the rows array. The second writeStartObject produces:
"object": {
[...]
}
With regards to your comments:
.writeStartObject() //here i can`t name the object
[...]
.writeStartArray() //here i can`t name the array
You can't specify a name because both the object and array are values in an array. The key is to enclose both of them in an object, and then both of them can (in fact, must) have a name.
edited Nov 13 '18 at 13:28
answered Nov 13 '18 at 13:12
Richard FearnRichard Fearn
20.2k54852
20.2k54852
Great, thanks a lot!
– extraflight95
Nov 13 '18 at 13:27
add a comment |
Great, thanks a lot!
– extraflight95
Nov 13 '18 at 13:27
Great, thanks a lot!
– extraflight95
Nov 13 '18 at 13:27
Great, thanks a lot!
– extraflight95
Nov 13 '18 at 13:27
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53281346%2fjava-generating-json-getting-exception-when-try-to-name-object-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
3
Please add a tag for which library you are using for json.
– CS_noob
Nov 13 '18 at 12:50
.writeStartArray("rows") .writeStartObject() //here i can`t name the object .write("id", "'1'@1000") .writeEnd() -- your ending the object, but not the array, that's why you can't name the new array, end the array first
– Blagoj Atanasovski
Nov 13 '18 at 12:53
So I can`t use named array inside named array?
– extraflight95
Nov 13 '18 at 13:02