json对象内部的json处理不正确

json inside a json object not handling properly

本文关键字:json 不正确 处理 内部 对象      更新时间:2023-09-26

我将一个JSON对象放在JSON对象中,并添加另一个值,但当我打印它时,它会给出[ObjectObject]。不提供json格式的值。代码如下。

var Json1 = {"name":"OMAR"};
var data=null;
var json2 = {"ID":12345 ,data:Json1 }; 

我很困惑我做错了什么。任何帮助都将不胜感激。

您的代码中有一些错误:

1.在另一个对象中添加一个对象不需要定义变量。

var data = null; // you need not to define it
var json2 = {
    "ID": 12345,
    data = json1
};

2.更换

var json2 = {
    "ID": 12345,
    data = json1
}; // wrong 

带有

var json2 = {
    "ID": 12345,
    "data": Json1 
}; // right

正确代码:

var Json1 = {
    "name": "OMAR"
};
var json2 = {
    "ID": 12345,
    "data": Json1 
};

为了提醒其价值:

试试这个:JSON.stringify(json2);

您的第三行当前有语法错误,因为=所在的位置需要:,而且JavaScript区分大小写,因此您需要Json1中的大写J来匹配第一行的变量(或将该变量更改为小写J):

var json2 = {"ID":12345, data : Json1 };

如果你这样做,你会发现json2.data.name返回了"OMAR"

此外,data变量和作为第二对象的属性的data不是一回事。

此外,术语挑剔:根本没有JSON对象这回事。

有关使用JavaScript对象的更多详细信息,MDN有一篇题为"使用对象"的文章。

代码中有两个拼写错误:

var Json1 = {"name":"OMAR"};
var data=null;
var json2 = {"ID":12345 ,data:Json1 };
//                           ^ = should be :
//                            ^ json1 should be Json1

现在,如果您需要json2.data中的一个值,请如下检索:

console.log(json2.data.name); //=> "OMAR"

此外,您的代码可以重写为:

var json2 = { "ID":12345 ,data:{"name":"OMAR"} };