How to design nested 3 level json [closed] - javascript

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I have an object like below:
Parent: { Child1: [ {name:'grandchild1', value:'abc', checked:true}, {name:'grandchild2', value:'pqr', checked:false} ], Child2: [ {name:'grandchild3', value:'abcd', checked:false}, {name:'grandchild4', value:'pqrs', checked:true} ], parent2{...........}.... };
How can I make it nested JSON.
Just like in root: parent1, parent2...
Child: children1, ....( Corresponding to parent)
Grandchildren: based on children
Please guide me how can I make it?

To make a JSON object you just have to follow JSON syntax
In your example it will look like:
{
"parent": {
"child1": [{
"name": "grandchild1",
"value": "abc",
"checked": "true"
}, {
"name": "grandchild2",
"value": "pqr",
"checked": "false"
}]
}
}
Please note that in JSON, string values must be written with double quotes.
If you need to get JSON string from object programmatically, you can write in javascript:
var myJSON = JSON.stringify(obj);

Related

javascript check if any array is empty from an object [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 1 year ago.
Improve this question
There is an object
let response = {
"meta": {
"id": 781
},
"content": {
"title": "Test",
"min": "1",
"max": "30",
"series": [
{
"name": "A",
"data": []
},
{
"name": "B",
"data": [3, 5, 6]
}
]
}
}
I need to check if any array of key, data is an empty array from series array. So, basically
if any data is empty array from series {
// do something
}
How can I achieve that?
you can try this one
let temp = response.content.series;
let num_of_empty_arr=0;
for(let i=0;i<temp.length;i++){
let obj=temp[i];
if(obj.data.length==0)
num_of_empty_arr++;
}
console.log("totol empty arrays",num_of_empty_arr);
you can do this by looping through response.content.series
for(let i of response.content.series){
if(i.data.length === 0){
//do something
console.log(i.name)
}
}
some allows you to return a boolean (true or false) based on a condition. Use it on the series data and return a value based upon whether the data array has any elements.
let response={meta:{id:781},content:{title:"Test",min:"1",max:"30",series:[{name:"A",data:[]},{name:"B",data:[3,5,6]}]}};
let response2={meta:{id:781},content:{title:"Test",min:"1",max:"30",series:[{name:"A",data:[1,2]},{name:"B",data:[3,5,6]}]}};
function areSomeEmpty(data) {
return data.content.series.some(arr => !arr.data.length);
}
console.log(areSomeEmpty(response));
console.log(areSomeEmpty(response2));

Categorise JSON Data [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 1 year ago.
Improve this question
Hey please don't roast me. So i have a JSON data like this
data": {
"person": [
{
"id": "xx1",
"name": "John DOe",
},
],
"person": [
{
"id": "xx2",
"name": "John Snow",
},
],
}
For example, I want to store every person data whose name contains "o". How could I do that? Thank you
JSON object ,if have duplicate keys, it will replace the first one with the most bottom one .
In your sample data, there is two "person" keys. Therefore, at the end, your said data will succumb to this.
{"data":{"person":[{"id":"xx2","name":"John Snow"}]}}
Therefore, to clarify your data, IMHO, this is supposed to be like this in the first place.
"data": {
"person": [
{
"id": "xx1",
"name": "John DOe",
},
{
"id": "xx2",
"name": "John Snow",
},
]
}
Then you can treat data.person as an array and use Array.prototype function to filter out your desired details.
The filter method should be
const personWithNameO = data.person.filter((v) => v.name.includes("o") );
console.log(personWithNameO);

Modified JSON response from nestjs while creating API [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
I do have json like below
[
[{
"id": "4e181c1b-0a68-425e-9eb7-df36324b6cdb",
"date_actual": {
"value": "2020-10-21T13:15:00"
},
"Date": "20201021",
"name": "abc"
},
{
"id": "4e181c1b-0a68-425e-9eb7-df36324qqq",
"date_actual": {
"value": "2020-1-21T13:15:00"
},
"Date": "2020102",
"name": "xyz"
}
]
]
want to modified like below
[
{
"id": "4e181c1b-0a68-425e-9eb7-df36324b6cdb",
"date_actual": "2020-10-21T13:15:00",
"Date": "20201021",
"name": "abc"
},
{
"id": "4e181c1b-0a68-425e-9eb7-df36324qqq",
"date_actual": "2020-10-21T13:15:00",
"Date": "2020102",
"name": "xyz"
}
]
My service class code is
const rows = await bigqueryClient.query(queryData);
console.log("old json"+JSON.stringify(rows));
return rows;
how to solve this issue using nestjs any way please help me ?
This isn't specific to NodeJS or NestJS, but is regular old JavaScript. As you have an array of values you can use the Array.prototype.map method to map to a new array
return origArray.map((val) => ({ ...val, date_actual: val.date_actual.value }))

How do I access the component object of the child components I render in a list? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
I have a JSON payload with a service in my component, but then I'm not sure how would I obtain a reference to the list items component objects from the parent component.
You can do this using ngFor loop.
{
"data": [
{
"id": "4",
"name": " Name1"
},
{
"id": "21",
"name": " Name2"
},
{
"id": "24",
"name": " Name3"
},
{
"id": "11",
"name": " Name4"
}
]
}
In HTML Code
<select>
<option *ngFor="let item of data"
[value]="item.id" >
{{item.name}}
</option>
</select>

Parsing nested array objects in json using Java script/jQuery [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I have a JSON file like this:
{[
{"name":"avc"},
{"name":"Anna"},
{"name":"Peter"},
{"Folder":[
{"name":"John"},
{"name":"Anna"},
{"Folder":[
{"name":"gg"},
{"name":"hh"}
]
}
]
}
]
}
It can be nested to any number of levels.
I want to traverse this file for any number of levels.
How can I achieve this using Javascript/JQuery
Thanks
You could iterate with Array#forEach and if a Folder is an array, then iterate that, too.
var a = [{ "name": "avc" }, { "name": "Anna" }, { "name": "Peter" }, { "Folder": [{ "name": "John" }, { "name": "Anna" }, { "Folder": [{ "name": "gg" }, { "name": "hh" }] }] }];
a.forEach(function iter(a) {
if (Array.isArray(a.Folder)) {
a.Folder.forEach(iter);
return;
}
console.log(a.name);
});
I read your question like this:
How can I iterate through an array of object, where an object may have
children of it's own. And every child may have children and so on...
One way is to write a recursive function, which is a function that calls itself. Here's a recursive function which will log every post into console.
Note that I've changed your model into a proper object. Also, I've added name to folder, but that can be removed if not necessary.
var a = [
{name:"avc"},
{name:"Anna"},
{name:"Peter"},
{name:"Folder name1",
folder:[
{name:"John"},
{name:"Anna"},
{name: "Folder name2",
folder:[
{name:"James"},
{name:"Clark"},
{name: "Folder name3",
folder:[
{name:"Cecilia"},
{name:"Clara"}
]},
{name:"Stephen"}
]
}
]
}
];
function read(obj){
for(var i = 0; i < obj.length; i++)
{
console.log(obj[i].name); // Or do what you need here...
if(obj[i].folder)
{
// Recursive call
read(obj[i].folder);
}
}
}
read(a);

Categories

Resources