将字符串转换为json对象时出错

时间:2016-10-19 04:52:03

标签: javascript json



func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {
    var shouldSelect = true
    if let viewControllers = tabBarController.viewControllers where viewControllers.indexOf(viewController) == lastIndex {
        shouldSelect = false
    }
    return shouldSelect
}




如果我尝试将String转换为JSON.parse。我收到了以下错误。

JSON.parse:预期的属性名称或'}'在JSON数据的第1行第4行

你能解决这个问题。

4 个答案:

答案 0 :(得分:1)

在这个代码段中,( result += "]}, ";) , ","(逗号)会在最后添加,因此json将像"},]"一样,您将期待"}]"

答案 1 :(得分:0)

我认为你可以使用JSON.stringify()或在(')quote

中使用键和值
var result = "";
result += "[";
for(i=0;i<=10;i++)
  {
    result += "{ 'key': 'keyvalue" + i + "', 'values': [";
    for(j=0;j<=10;j++)
      {
        result += "{ 'key': 'subkeyvalue"+j+"', 'value':"+j+"}, ";
      }
    result += "]}, ";
  }

result += "]";

console.log(result);

console.log(JSON.stringify(result));

答案 2 :(得分:0)

尝试使用下面给出的代码。在迭代

时,不应将(逗号)附加到最后一个元素

var result = "";
result += "[";
for(i=0;i<=10;i++)
  {
    result += '{ "key": "keyvalue' + i + '", "values": [';
    for(j=0;j<=10;j++)
      {
        result += '{ "key": "subkeyvalue'+j+'", "value":'+j+'}';
        if(j!=10) {
          result += ','
        }
      }
    result += ']} ';
    if(i!=10) {
    	result += ','
    }
  }

result += ']';

console.log(result);

console.log(JSON.parse(result));

答案 3 :(得分:0)

不要通过字符串连接手动创建JSON字符串。只是......没有。

创建一个数组,创建适当的对象并将它们添加到数组中,然后按原样将数组传递给图表库。

或者,如果您确实需要JSON 字符串,请在阵列上使用JSON.stringify()

请注意there is no such thing as a "JSON object"

var result = [];
var vals;
for(var i=0;i<=10;i++) {
  vals = [];
  for(j=0;j<=10;j++) {
    vals.push( { key: 'subkeyvalue'+j, value: j } );
  }
  result.push( { key: 'keyvalue' + i, values: vals } );
}

// someChartFunction(result);

console.log(result);
console.log(JSON.stringify(result));