2016-12-24 212 views
0

我有一点问题。 我有这个JSON文件为什么我的JSON不起作用

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

我解析它,我可以用它NN我的脚本。

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未定义。

有人有一个想法,为什么?

+0

你是如何在你的脚本中加载你的json文件,你正试图解析? – reza

+0

@reza在头部我得到这个

+0

由于它是一个不同的文件,我认为你需要指定文件名。你不能只使用'sprecherText'。 – chackerian

回答

3

你的问题是,你破坏了一个文字行,而又不会让backslach末\

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' } ] 
+0

啊,好吧,帮助我感谢! –

2

您的例子不工作,由于突破了字面线在这个例子中:

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

把它变成如下g,并且它会解决这个问题:

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

在你的代码最后的例子,你是缺少一个右}您的JSON是不是真正有效的,或者您需要删除第一{,以确保它是有效的。