'JSON.stringify on Arrays adding numeric keys for each array value
I am trying to convert an array to object .
Below is the array value which I am trying to transform into an object.
kbInfo : [{ "questionId": "1", "customQuestion": "What is your first car make and model", "answer": "Ford Pinto" },{ "questionId": "14", "customQuestion": "Your favorite sports", "answer": "Sleeping" } ]
This gives a result like below after doing a JSON.stringify(kbaInfo)
{"0":{ "questionId": "1", "customQuestion": "What is your first car make and model", "answer": "Ford Pinto" },"1":{ "questionId": "14", "customQuestion": "Your favorite sports", "answer": "Sleeping" }}
I want to create the result in this form.
{ "SQA": [{ "questionId": "1", "customQuestion": "What is your first car make and model", "answer": "Ford Pinto" }, { "questionId": "14", "customQuestion": "Your favorite sports", "answer": "Sleeping" } ]}
I am not able to figure out how I can create on object result like above. I am using a Rhino 1.7 engine. Is there a way I can achieve this form?
Solution 1:[1]
I suppose that you mean that kbInfo
and kbaInfo
are the same variable. To get that "SQA" property in your output object, you'll need to create it...
For example:
var kbInfo = [{ "questionId": "1", "customQuestion": "What is your first car make and model", "answer": "Ford Pinto" },{ "questionId": "14", "customQuestion": "Your favorite sports", "answer": "Sleeping" } ];
var wrapped = { SQA: kbInfo };
console.log(JSON.stringify(wrapped));
From comments it seems that your input data might not be an array, but just an "array-like" object. In that case, create an array from it. This solution assumes that the input object has a length
property:
var kbInfo = { 0: { "questionId": "1", "customQuestion": "What is your first car make and model", "answer": "Ford Pinto" }, 1: { "questionId": "14", "customQuestion": "Your favorite sports", "answer": "Sleeping" }, length: 2 };
var wrapped = { SQA: Array.from(kbInfo) };
console.log(JSON.stringify(wrapped));
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |