2015-05-09 73 views
-1

我创建了以下JSON:这是json错误吗?

{ "posts" : [ 
    {"post" : 
     {"person" : somePerson, 
     "messages" : [person says : Hello how are you,person2 says : I\'m fine] 
     } 
    }, 
    {"post" : 
     {"person" : someOtherPerson, 
     "messages" : [person says : I\'m happy,person2 says : me too] 
     } 
    } 
    ] 
} 

但jQuery的.done不被调用此输入。我怀疑json的格式有问题。我不知道我是否被允许在json对象中传递数组“消息”。如果我不是,我该如何解决这个问题?

+1

消息应该是一个对象。钥匙和价值必须被引用。 – steven

回答

4

使用http://jsonlint.com/或类似的服务:

 
Parse error on line 5: 
...   "person": somePerson,   
-----------------------^ 
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[' 
+0

这工作,谢谢你的链接:) – Bosiwow

0

从属性名称中的空格。改变人对人说。并在引号中插入字符串。

+0

在这种情况下,“消息”必须更改为一个对象。或者他应该使用没有密钥的消息并将整个项目作为值发送,即'''person 1说:something“,”person 2说:something“]' – steven

+0

当然,”messages“必须是对象数组:[{ “person_1_says”:“something”},{“person_2_says”:“something”}]在实际项目中,对象必须有两个字段,名称和消息。 –

2

你的JSON格式不对,让我告诉你我怎么counld做到这一点:

{ "posts" : [ 
{ 
    "person": "Person1", 
    "messages": [ 
    { 
     "person": "Person1", 
     "message": "I'm happy" 
    }, 
    { 
     "person": "Person2", 
     "message": "me too" 
    } 
    ] 
}, 
{ 
    "person": "Person3", 
    "messages": [ 
    { 
     "person": "Person3", 
     "message": "Hello how are you" 
    }, 
    { 
     "person": "Person2", 
     "message": "I'm fine" 
    } 
    ] 
} 

] }

*您有posts阵列的权利?为什么加入其中的对象与"post"属性?,它没有任何意义,只是使一个对象,像我一样定义每个职位的数据

*在JSON中,数组不能像你想要做的对象,数组只包含对象或值l ike字符串或数字...