Javascript:使用额外的大括号解析JSON
我有一个JSON对象:Javascript:使用额外的大括号解析JSON,javascript,json,node.js,Javascript,Json,Node.js,我有一个JSON对象: var dataObj = { data: '\n{ sizeMap:{\nxSizes: "REGULAR|SMALL", \ncurrItemId: "",\ncurrItemSize: "",\nmanufacturerName:"Rapid",\npartNumber: "726G", \nsuitStyle: "R",\nhasSC: "",\nhasInseam:""\n}\n}',type: 'text',next: null,prev: null };
var dataObj = { data: '\n{ sizeMap:{\nxSizes: "REGULAR|SMALL", \ncurrItemId: "",\ncurrItemSize: "",\nmanufacturerName:"Rapid",\npartNumber: "726G", \nsuitStyle: "R",\nhasSC: "",\nhasInseam:""\n}\n}',type: 'text',next: null,prev: null };
我正在尝试读取dataObj.data
值中的sizeMap
对象,方法是:
console.log(dataObj.data.sizeMap);
但它是未定义的。我尝试了JSON.parse(dataObj.data)
以下错误:
{ sizeMap:{
^
SyntaxError: Unexpected token s
console.log(dataObj.data)
的输出是:
{ sizeMap:{
xSizes: "REGULAR|SMALL",
currItemId: "",
currItemSize: "",
manufacturerName:"Rapid",
partNumber: "726G",
suitStyle: "R",
hasSC: "",
hasInseam:""
}
}
那么JSON还有额外的大括号吗?注意:这在Node.js中,您的JSON无效。试着通过一个工具运行它,比如 这些键也需要用引号括起来 比如说
{
"sizeMap": {
"xSizes": "REGULAR|SMALL",
"currItemId": "",
"currItemSize": "",
"manufacturerName": "Rapid",
"partNumber": "726G",
"suitStyle": "R",
"haSC": "",
"hasInseam": ""
}
}
您的JSON无效。试着通过一个工具运行它,比如 这些键也需要用引号括起来 比如说
{
"sizeMap": {
"xSizes": "REGULAR|SMALL",
"currItemId": "",
"currItemSize": "",
"manufacturerName": "Rapid",
"partNumber": "726G",
"suitStyle": "R",
"haSC": "",
"hasInseam": ""
}
}
您的JSON无效。试着通过一个工具运行它,比如 这些键也需要用引号括起来 比如说
{
"sizeMap": {
"xSizes": "REGULAR|SMALL",
"currItemId": "",
"currItemSize": "",
"manufacturerName": "Rapid",
"partNumber": "726G",
"suitStyle": "R",
"haSC": "",
"hasInseam": ""
}
}
您的JSON无效。试着通过一个工具运行它,比如 这些键也需要用引号括起来 比如说
{
"sizeMap": {
"xSizes": "REGULAR|SMALL",
"currItemId": "",
"currItemSize": "",
"manufacturerName": "Rapid",
"partNumber": "726G",
"suitStyle": "R",
"haSC": "",
"hasInseam": ""
}
}
这不是JSON,而是JavaScript对象。JSON是一种表示数据的文本格式 对象中的字符串
data
也不是JSON。要成为有效的JSON,需要在所有属性名称周围加引号:
{
"sizeMap": {
"xSizes": "REGULAR|SMALL",
"currItemId": "",
"currItemSize": "",
"manufacturerName":"Rapid",
"partNumber": "726G",
"suitStyle": "R",
"hasSC": "",
"hasInseam":""
}
}
请注意,括号实际上应该在那里,这不是问题所在
该字符串将用作JavaScript,因此您可以使用eval
将其转换为对象:
eval("(" + dataObj.data + ")").sizeMap
当您使用
eval
时,通常的预融合自然适用。在执行代码时,您必须确保没有人可以在字符串中放入任何有害的内容。这不是JSON,而是JavaScript对象。JSON是一种表示数据的文本格式
对象中的字符串data
也不是JSON。要成为有效的JSON,需要在所有属性名称周围加引号:
{
"sizeMap": {
"xSizes": "REGULAR|SMALL",
"currItemId": "",
"currItemSize": "",
"manufacturerName":"Rapid",
"partNumber": "726G",
"suitStyle": "R",
"hasSC": "",
"hasInseam":""
}
}
请注意,括号实际上应该在那里,这不是问题所在
该字符串将用作JavaScript,因此您可以使用eval
将其转换为对象:
eval("(" + dataObj.data + ")").sizeMap
当您使用
eval
时,通常的预融合自然适用。在执行代码时,您必须确保没有人可以在字符串中放入任何有害的内容。这不是JSON,而是JavaScript对象。JSON是一种表示数据的文本格式
对象中的字符串data
也不是JSON。要成为有效的JSON,需要在所有属性名称周围加引号:
{
"sizeMap": {
"xSizes": "REGULAR|SMALL",
"currItemId": "",
"currItemSize": "",
"manufacturerName":"Rapid",
"partNumber": "726G",
"suitStyle": "R",
"hasSC": "",
"hasInseam":""
}
}
请注意,括号实际上应该在那里,这不是问题所在
该字符串将用作JavaScript,因此您可以使用eval
将其转换为对象:
eval("(" + dataObj.data + ")").sizeMap
当您使用
eval
时,通常的预融合自然适用。在执行代码时,您必须确保没有人可以在字符串中放入任何有害的内容。这不是JSON,而是JavaScript对象。JSON是一种表示数据的文本格式
对象中的字符串data
也不是JSON。要成为有效的JSON,需要在所有属性名称周围加引号:
{
"sizeMap": {
"xSizes": "REGULAR|SMALL",
"currItemId": "",
"currItemSize": "",
"manufacturerName":"Rapid",
"partNumber": "726G",
"suitStyle": "R",
"hasSC": "",
"hasInseam":""
}
}
请注意,括号实际上应该在那里,这不是问题所在
该字符串将用作JavaScript,因此您可以使用eval
将其转换为对象:
eval("(" + dataObj.data + ")").sizeMap
当您使用
eval
时,通常的预融合自然适用。当它执行代码时,您必须确保没有人可以在字符串中放入任何有害的内容。当我运行eval(dataObj.data)。sizeMap
时,我得到了这个错误currItemId:,SyntaxError:意外标记:
Ok通过运行eval(“+dataObj.data+”)
@jrbaldwinn:Right,它被解释为一个代码块而不是一个对象文本。当我运行eval(dataObj.data).sizeMap时,我得到了这个错误currItemId:,SyntaxError:Unexpected token:
Ok通过运行eval(“+dataObj.data+”)
@jrbaldwinn:Right,它被解释为一个代码块而不是一个对象文本。当我运行eval(dataObj.data).sizeMap时,我得到了这个错误currItemId:,SyntaxError:Unexpected token:
Ok通过运行eval(“+dataObj.data+”)
@jrbaldwinn:Right,它被解释为一个代码块而不是一个对象文字。当我运行eval(dataObj.data).sizeMap时,我得到了这个错误currItemId:,SyntaxError:Unexpected token:
Ok通过运行eval(“+dataObj.data+”)
@jrbaldwinn:对,它被解释为一个代码块而不是一个对象文字来修复这个错误。