<ul>\n <li>CATEGORY_ID - A</li>\n <li>PRODUCT_DETAILS\n <ul>\n <li>PRODUCT_ID - A.1</li>\n <li>PRODUCT_NAME - AAAA1111</li>\n <li>UNIT_COST - 0.1</li>\n </ul>\n </li>\n <li>CATEGORY_ID - B</li>\n <li>PRODUCT_DETAILS\n <ul>\n <li>PRODUCT_ID - B.1</li>\n <li>PRODUCT_NAME - BBBBB1111</li>\n <li>UNIT_COST - 0.2</li>\n </ul>\n </li>\n</ul>\n
\n\nI tried to do but got JavaScript errors. Can any one please help to create JSON for the above mentioned diagram. \nNote: One Category has more than one product details. It means PRODUCT_ID, PRODUCT_NAME and UNIT_COST will be repeating to more than one time for a particular CATEGORY_ID.
\n\nThe JavaScript code I have tried
\n\nvar product = '{\"products_list\":' +\n '[' + \n '{' + \n '{\"category_id\":\"A\"},' +\n '{\"product_details\":' + \n '[' + \n '{\"product_id\":\"A.1\",\"product_name\":\"AAAA1111\", \"unit_cost\":\"A1\"},' +\n '{\"product_id\":\"A.2\",\"product_name\":\"AAAA2222\", \"unit_cost\":\"A2\"},' +\n '{\"product_id\":\"A.3\",\"product_name\":\"AAAA3333\", \"unit_cost\":\"A3\"},' +\n '{\"product_id\":\"A.4\",\"product_name\":\"AAAA4444\", \"unit_cost\":\"A4\"},' +\n '{\"product_id\":\"A.5\",\"product_name\":\"AAAA5555\", \"unit_cost\":\"A5\"},' +\n '{\"product_id\":\"A.6\",\"product_name\":\"AAAA6666\", \"unit_cost\":\"A6\"},' +\n '{\"product_id\":\"A.7\",\"product_name\":\"AAAA7777\", \"unit_cost\":\"A7\"},' +\n '{\"product_id\":\"A.8\",\"product_name\":\"AAAA8888\", \"unit_cost\":\"A8\"},' +\n '{\"product_id\":\"A.9\",\"product_name\":\"AAAA9999\", \"unit_cost\":\"A9\"},' +\n '{\"product_id\":\"A.0\",\"product_name\":\"AAAA0000\", \"unit_cost\":\"A0\"}' +\n ']' + \n '}' + \n '},' + \n '{' + \n '{\"category_id\":\"A\"},' +\n '{\"product_details\":' + \n '[' + \n '{\"product_id\":\"A.1\",\"product_name\":\"AAAA1111\", \"unit_cost\":\"A1\"},' +\n '{\"product_id\":\"A.2\",\"product_name\":\"AAAA2222\", \"unit_cost\":\"A2\"},' +\n '{\"product_id\":\"A.3\",\"product_name\":\"AAAA3333\", \"unit_cost\":\"A3\"},' +\n '{\"product_id\":\"A.4\",\"product_name\":\"AAAA4444\", \"unit_cost\":\"A4\"},' +\n '{\"product_id\":\"A.5\",\"product_name\":\"AAAA5555\", \"unit_cost\":\"A5\"},' +\n '{\"product_id\":\"A.6\",\"product_name\":\"AAAA6666\", \"unit_cost\":\"A6\"},' +\n '{\"product_id\":\"A.7\",\"product_name\":\"AAAA7777\", \"unit_cost\":\"A7\"},' +\n '{\"product_id\":\"A.8\",\"product_name\":\"AAAA8888\", \"unit_cost\":\"A8\"},' +\n '{\"product_id\":\"A.9\",\"product_name\":\"AAAA9999\", \"unit_cost\":\"A9\"},' +\n '{\"product_id\":\"A.0\",\"product_name\":\"AAAA0000\", \"unit_cost\":\"A0\"}' +\n ']' + \n '}' + \n '}' + \n ']' + \n '}';\n
\n","author":{"@type":"Person","name":"Faizul Hasan"},"upvoteCount":0,"answerCount":3,"acceptedAnswer":{"@type":"Answer","text":"Using the HTML tree, you will get the followin JSON representation for the PRODUCT_LIST:
\n\n[\n {\n \"CATEGORY_ID\":\"A\",\n \"PRODUCT_DETAILS\":[\n {\n \"PRODUCT_ID\":\"A.1\",\n \"PRODUCT_NAME\":\"AAAA1111\",\n \"UNIT_COST\":0.1\n }\n ]\n },\n {\n \"CATEGORY_ID\":\"B\",\n \"PRODUCT_DETAILS\":[\n {\n \"PRODUCT_ID\":\"B.1\",\n \"PRODUCT_NAME\":\"BBBBB1111\",\n \"UNIT_COST\":0.2\n }\n ]\n }\n]\n
\n\nHowever, your JavaScript produces a nearly valid JSON string, which is assigned to the product
variable. You could use JSON.parse()
on it, but that's too complicated. As the JavaScriptObjectNotation is a subset of the Javascript object literal syntax, you should directly assign the object.
In your JSON, you have some braces too much around the category objects. You can check that e.g. with http://jsonformatter.curiousconcept.com/. Corrected script:
\n\nvar product = {\n \"products_list\":[\n {\n \"category_id\":\"A\",\n \"product_details\":[\n {\n \"product_id\":\"A.1\",\n \"product_name\":\"AAAA1111\",\n \"unit_cost\":\"A1\"\n },\n {\n \"product_id\":\"A.2\",\n \"product_name\":\"AAAA2222\",\n \"unit_cost\":\"A2\"\n },\n {\n \"product_id\":\"A.3\",\n \"product_name\":\"AAAA3333\",\n \"unit_cost\":\"A3\"\n },\n {\n \"product_id\":\"A.4\",\n \"product_name\":\"AAAA4444\",\n \"unit_cost\":\"A4\"\n },\n {\n \"product_id\":\"A.5\",\n \"product_name\":\"AAAA5555\",\n \"unit_cost\":\"A5\"\n },\n {\n \"product_id\":\"A.6\",\n \"product_name\":\"AAAA6666\",\n \"unit_cost\":\"A6\"\n },\n {\n \"product_id\":\"A.7\",\n \"product_name\":\"AAAA7777\",\n \"unit_cost\":\"A7\"\n },\n {\n \"product_id\":\"A.8\",\n \"product_name\":\"AAAA8888\",\n \"unit_cost\":\"A8\"\n },\n {\n \"product_id\":\"A.9\",\n \"product_name\":\"AAAA9999\",\n \"unit_cost\":\"A9\"\n },\n {\n \"product_id\":\"A.0\",\n \"product_name\":\"AAAA0000\",\n \"unit_cost\":\"A0\"\n }\n ]\n },\n {\n \"category_id\":\"A\",\n \"product_details\":[\n {\n \"product_id\":\"A.1\",\n \"product_name\":\"AAAA1111\",\n \"unit_cost\":\"A1\"\n },\n {\n \"product_id\":\"A.2\",\n \"product_name\":\"AAAA2222\",\n \"unit_cost\":\"A2\"\n },\n {\n \"product_id\":\"A.3\",\n \"product_name\":\"AAAA3333\",\n \"unit_cost\":\"A3\"\n },\n {\n \"product_id\":\"A.4\",\n \"product_name\":\"AAAA4444\",\n \"unit_cost\":\"A4\"\n },\n {\n \"product_id\":\"A.5\",\n \"product_name\":\"AAAA5555\",\n \"unit_cost\":\"A5\"\n },\n {\n \"product_id\":\"A.6\",\n \"product_name\":\"AAAA6666\",\n \"unit_cost\":\"A6\"\n },\n {\n \"product_id\":\"A.7\",\n \"product_name\":\"AAAA7777\",\n \"unit_cost\":\"A7\"\n },\n {\n \"product_id\":\"A.8\",\n \"product_name\":\"AAAA8888\",\n \"unit_cost\":\"A8\"\n },\n {\n \"product_id\":\"A.9\",\n \"product_name\":\"AAAA9999\",\n \"unit_cost\":\"A9\"\n },\n {\n \"product_id\":\"A.0\",\n \"product_name\":\"AAAA0000\",\n \"unit_cost\":\"A0\"\n }\n ]\n }\n ]\n}\n
\n","author":{"@type":"Person","name":"Bergi"},"upvoteCount":3}}}Reputation: 623
I am very much new to this JSON objects. So I need some helps from you guys. I have to create a JSON object and that object has two children. One child has some children. If my question is confusing just refer the following diagram. It is similar to nested lists.
Example:
PRODUCT_LIST
<ul>
<li>CATEGORY_ID - A</li>
<li>PRODUCT_DETAILS
<ul>
<li>PRODUCT_ID - A.1</li>
<li>PRODUCT_NAME - AAAA1111</li>
<li>UNIT_COST - 0.1</li>
</ul>
</li>
<li>CATEGORY_ID - B</li>
<li>PRODUCT_DETAILS
<ul>
<li>PRODUCT_ID - B.1</li>
<li>PRODUCT_NAME - BBBBB1111</li>
<li>UNIT_COST - 0.2</li>
</ul>
</li>
</ul>
I tried to do but got JavaScript errors. Can any one please help to create JSON for the above mentioned diagram. Note: One Category has more than one product details. It means PRODUCT_ID, PRODUCT_NAME and UNIT_COST will be repeating to more than one time for a particular CATEGORY_ID.
The JavaScript code I have tried
var product = '{"products_list":' +
'[' +
'{' +
'{"category_id":"A"},' +
'{"product_details":' +
'[' +
'{"product_id":"A.1","product_name":"AAAA1111", "unit_cost":"A1"},' +
'{"product_id":"A.2","product_name":"AAAA2222", "unit_cost":"A2"},' +
'{"product_id":"A.3","product_name":"AAAA3333", "unit_cost":"A3"},' +
'{"product_id":"A.4","product_name":"AAAA4444", "unit_cost":"A4"},' +
'{"product_id":"A.5","product_name":"AAAA5555", "unit_cost":"A5"},' +
'{"product_id":"A.6","product_name":"AAAA6666", "unit_cost":"A6"},' +
'{"product_id":"A.7","product_name":"AAAA7777", "unit_cost":"A7"},' +
'{"product_id":"A.8","product_name":"AAAA8888", "unit_cost":"A8"},' +
'{"product_id":"A.9","product_name":"AAAA9999", "unit_cost":"A9"},' +
'{"product_id":"A.0","product_name":"AAAA0000", "unit_cost":"A0"}' +
']' +
'}' +
'},' +
'{' +
'{"category_id":"A"},' +
'{"product_details":' +
'[' +
'{"product_id":"A.1","product_name":"AAAA1111", "unit_cost":"A1"},' +
'{"product_id":"A.2","product_name":"AAAA2222", "unit_cost":"A2"},' +
'{"product_id":"A.3","product_name":"AAAA3333", "unit_cost":"A3"},' +
'{"product_id":"A.4","product_name":"AAAA4444", "unit_cost":"A4"},' +
'{"product_id":"A.5","product_name":"AAAA5555", "unit_cost":"A5"},' +
'{"product_id":"A.6","product_name":"AAAA6666", "unit_cost":"A6"},' +
'{"product_id":"A.7","product_name":"AAAA7777", "unit_cost":"A7"},' +
'{"product_id":"A.8","product_name":"AAAA8888", "unit_cost":"A8"},' +
'{"product_id":"A.9","product_name":"AAAA9999", "unit_cost":"A9"},' +
'{"product_id":"A.0","product_name":"AAAA0000", "unit_cost":"A0"}' +
']' +
'}' +
'}' +
']' +
'}';
Upvotes: 0
Views: 3421
Reputation: 665455
Using the HTML tree, you will get the followin JSON representation for the PRODUCT_LIST:
[
{
"CATEGORY_ID":"A",
"PRODUCT_DETAILS":[
{
"PRODUCT_ID":"A.1",
"PRODUCT_NAME":"AAAA1111",
"UNIT_COST":0.1
}
]
},
{
"CATEGORY_ID":"B",
"PRODUCT_DETAILS":[
{
"PRODUCT_ID":"B.1",
"PRODUCT_NAME":"BBBBB1111",
"UNIT_COST":0.2
}
]
}
]
However, your JavaScript produces a nearly valid JSON string, which is assigned to the product
variable. You could use JSON.parse()
on it, but that's too complicated. As the JavaScriptObjectNotation is a subset of the Javascript object literal syntax, you should directly assign the object.
In your JSON, you have some braces too much around the category objects. You can check that e.g. with http://jsonformatter.curiousconcept.com/. Corrected script:
var product = {
"products_list":[
{
"category_id":"A",
"product_details":[
{
"product_id":"A.1",
"product_name":"AAAA1111",
"unit_cost":"A1"
},
{
"product_id":"A.2",
"product_name":"AAAA2222",
"unit_cost":"A2"
},
{
"product_id":"A.3",
"product_name":"AAAA3333",
"unit_cost":"A3"
},
{
"product_id":"A.4",
"product_name":"AAAA4444",
"unit_cost":"A4"
},
{
"product_id":"A.5",
"product_name":"AAAA5555",
"unit_cost":"A5"
},
{
"product_id":"A.6",
"product_name":"AAAA6666",
"unit_cost":"A6"
},
{
"product_id":"A.7",
"product_name":"AAAA7777",
"unit_cost":"A7"
},
{
"product_id":"A.8",
"product_name":"AAAA8888",
"unit_cost":"A8"
},
{
"product_id":"A.9",
"product_name":"AAAA9999",
"unit_cost":"A9"
},
{
"product_id":"A.0",
"product_name":"AAAA0000",
"unit_cost":"A0"
}
]
},
{
"category_id":"A",
"product_details":[
{
"product_id":"A.1",
"product_name":"AAAA1111",
"unit_cost":"A1"
},
{
"product_id":"A.2",
"product_name":"AAAA2222",
"unit_cost":"A2"
},
{
"product_id":"A.3",
"product_name":"AAAA3333",
"unit_cost":"A3"
},
{
"product_id":"A.4",
"product_name":"AAAA4444",
"unit_cost":"A4"
},
{
"product_id":"A.5",
"product_name":"AAAA5555",
"unit_cost":"A5"
},
{
"product_id":"A.6",
"product_name":"AAAA6666",
"unit_cost":"A6"
},
{
"product_id":"A.7",
"product_name":"AAAA7777",
"unit_cost":"A7"
},
{
"product_id":"A.8",
"product_name":"AAAA8888",
"unit_cost":"A8"
},
{
"product_id":"A.9",
"product_name":"AAAA9999",
"unit_cost":"A9"
},
{
"product_id":"A.0",
"product_name":"AAAA0000",
"unit_cost":"A0"
}
]
}
]
}
Upvotes: 3
Reputation: 3848
All identifiers should be in quotes.
By indexing by category id and making the categories arrays of objects I think you get all the features and capabilities of your data structure and make the solution very flexible.
var category = {
"A": [
{ "product_id": "A.1", "product_name": "AAAA1111", "unit_cost": 0.1 },
{ "product_id": "A.2", "product_name": "AAAA2222", "unit_cost": 0.2 },
],
"B": [
{ "product_id": "B.1", "product_name": "BBBB1111", "unit_cost": 0.2 },
{ "product_id": "B.2", "product_name": "BBBB2222", "unit_cost": 0.4 },
]
};
Upvotes: 1
Reputation: 4293
This is a bit of a confusing question, but I'd probably have JSON something like this
var data = [
{
category_id: 'A',
product_id: 'A.1',
product_name: 'AAAA1111',
unit_cost: 0.1
},
{
category_id: 'B',
product_id: 'B.1',
product_name: 'BBBB1111',
unit_cost: 0.2
}
];
And then filter it by category when displaying. You might find http://underscorejs.org/ useful for filtering your results
Upvotes: 0