Javascript:使用额外的大括号解析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 };

我有一个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 };
我正在尝试读取
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:对,它被解释为一个代码块而不是一个对象文字来修复这个错误。