为什么我的JSON不起作用

时间:2016-12-24 20:09:25

标签: javascript jquery html json

我有点问题。 我有这个JSON文件

sprecherText = '[{"name" : "Ashwin","text":"Hi","image":"./images/char1.png"},{"name" : "Abhinandan","text":"Was geht?","image":"./images/char2.png"}]';

我解析它,我可以在我的脚本中使用它。

var mydata = $.parseJSON(sprecherText);

但是你看到JSON不好读。所以,我试图打破这样的界限。

sprecherText = 
'[{"name" : "Ashwin","text":"Hi","image":"./images/char1.png"},
{"name" : "Abhinandan","text":"Was geht?","image":"./images/char2.png"}]';

但是,我得到了这个错误

未定义sprecherText

然后我试着让它变得与众不同

{  
"sprecherText":[  
  {  
     "name":"Ashwin",
     "text":"Hi",
     "image":"./images/char1.png"
  },
  {  
     "name":"Abhinandan",
     "text":"Was geht?",
     "image":"./images/char2.png"
  }
]
}

我仍然收到错误

未定义sprecherText。

有人知道为什么?

2 个答案:

答案 0 :(得分:3)

你的问题是,如果不在最后放置一个后退,你就会打破一个文字行\

var sprecherText = 
  '[{"name" : "Ashwin","text":"Hi","image":"./images/char1.png"},\
    {"name" : "Abhinandan","text":"Was geht?","image":"./images/char2.png"}]';

console.log(sprecherText)
'[{"name" : "Ashwin","text":"Hi","image":"./images/char1.png"},{"name" : "Abhinandan","text":"Was geht?","image":"./images/char2.png"}]'

现在可行了

JSON.parse(sprecherText)
[ { name: 'Ashwin', text: 'Hi', image: './images/char1.png' },
  { name: 'Abhinandan',
    text: 'Was geht?',
    image: './images/char2.png' } ]

答案 1 :(得分:2)

由于在此示例中断开了一个文字行,您的示例无效:

sprecherText = 
'[{"name" : "Ashwin","text":"Hi","image":"./images/char1.png"},
{"name" : "Abhinandan","text":"Was geht?","image":"./images/char2.png"}]';

将其转换为以下内容,它将解决问题:

var sprecherText = '[{"name" : "Ashwin","text":"Hi","image":"./images/char1.png"}, {"name" : "Abhinandan","text":"Was geht?","image":"./images/char2.png"}]';

在最后的代码示例中,您的JSON实际上并不有效,因为您错过了结束},或者您需要删除第一个{以确保其有效。