试图执行JSON.parse,但它不喜欢我使用服务器返回的字符串所做的操作

Trying to do JSON.parse but it doesnt like what i am doing with a returned string from my server

本文关键字:返回 服务器 字符串 操作 JSON 执行 parse 不喜欢      更新时间:2024-03-18

我试图从服务器返回一个字符串,该字符串将被解析为javascript对象。不过,在解析过程中,我总是会遇到一个错误。我不知道为什么。也许你知道一些我不知道的事情。

我的字符串如下:

{{"fname":"bob","lname":"jones"},{...}}

我想做的是类似的事情

var item = JSON.parse(myString);

它应该是一个项目,一个名称数组,这样我就可以做一些类似的事情:

for(var i = 0; i < item.length; i++){
    alert(item[i].fname + " " + item[i].lname);
}

我做错什么了吗?上面是一个示例,但下面实际上是代码片段:

while (reader.Read())
{
    if (reader["rt_id"] != DBNull.Value && reader["rt_name"] != DBNull.Value)
    {
          t = @"{""pValue"":""{ReportType},"+reader["rt_id"]+@""",""pText"":"""+reader["rt_name"]+@"""}";
          returnContentsArray.Add(t);
    }
}
returnContents = "{" + String.Join(",",returnContentsArray.ToArray()) + "}";
return returnContents;

客户端:

var item = JSON.parse(result); 

该字符串不是有效的JSON。{}表示一个对象,该对象需要具有密钥。似乎您想要一个数组,请改用[]

returnContents = "[" + String.Join(",",returnContentsArray.ToArray()) + "]";

您需要使用正确的JSON格式。看起来你应该使用的格式是

[{"fname":"bob","lname":"jones"},{...}]

它将返回一个对象数组。只需让用户在尝试更改javascript代码之前,可以在类似的JSONLint中验证JSON。