将JSON字符串转换为JavaScript对象以进行迭代

时间:2014-02-27 08:52:55

标签: javascript json

我搜索但我无法找到任何解决方案。我从服务器获取此字符串:

 [
  {
    'id': 0,
    'name': 'Adventure Works',
    'uniqueName': '[AdventureWorksDW2012Multidimensional-EE].[Adventure Works]'
  },
  {
    'id': 1,
    'name': 'Channel Sales',
    'uniqueName': '[AdventureWorksDW2012Multidimensional-EE].[Channel Sales]'
  },
  {
    'id': 2,
    'name': 'Direct Sales',
    'uniqueName': '[AdventureWorksDW2012Multidimensional-EE].[Direct Sales]'
  },
  {
    'id': 3,
    'name': 'Finance',
    'uniqueName': '[AdventureWorksDW2012Multidimensional-EE].[Finance]'
  },
  {
    'id': 4,
    'name': 'Mined Customers',
    'uniqueName': '[AdventureWorksDW2012Multidimensional-EE].[Mined Customers]'
  },
  {
    'id': 5,
    'name': 'Sales Summary',
    'uniqueName': '[AdventureWorksDW2012Multidimensional-EE].[Sales Summary]'
  },
  {
    'id': 6,
    'name': 'Sales Targets',
    'uniqueName': '[AdventureWorksDW2012Multidimensional-EE].[Sales Targets]'
  }
]

但它是一个字符串,我希望它作为JavaScript对象。如果我手动从字符串中删除第一个和最后一个",那么每件事情都可以,但如何将此字符串转换为JavaScript对象?

更新

如果我使用jquery进行解析:

var data = $.parseJSON( response.d );

我收到此错误:

Uncaught TypeError: Cannot use 'in' operator to search for '727' in {'id':0,'name':'Adventure Works','uniqueName':'[AdventureWorksDW2012Multidimensional-EE].[Adventure Works]'},{'id':1,'name':'Channel Sales','uniqueName':'[AdventureWorksDW2012Multi...<omitted>...'} 

**编辑**

这是JSFIDDLE链接。

3 个答案:

答案 0 :(得分:1)

使用JSON.parse("[{...}]");将其转换为Javascript对象。

答案 1 :(得分:1)

您可以将JSON字符串的JSON.parse()方法用于Javascript对象。

答案 2 :(得分:0)

您可以使用:

JSON.parse("some json stringified object")

要从json对象创建字符串,请使用:

JSON.stringify(OBJECT);