Java: Generating JSON: Getting exception when try to name object & array












0















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?










share|improve this question




















  • 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
















0















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?










share|improve this question




















  • 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














0












0








0








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?










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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














  • 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












1 Answer
1






active

oldest

votes


















1














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.






share|improve this answer


























  • Great, thanks a lot!

    – extraflight95
    Nov 13 '18 at 13:27











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
});


}
});














draft saved

draft discarded


















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









1














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.






share|improve this answer


























  • Great, thanks a lot!

    – extraflight95
    Nov 13 '18 at 13:27
















1














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.






share|improve this answer


























  • Great, thanks a lot!

    – extraflight95
    Nov 13 '18 at 13:27














1












1








1







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.






share|improve this answer















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.







share|improve this answer














share|improve this answer



share|improve this answer








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



















  • 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


















draft saved

draft discarded




















































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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

List item for chat from Array inside array React Native

Thiostrepton

Caerphilly