试图执行JSON.parse,但它不喜欢我使用服务器返回的字符串所做的操作
Trying to do JSON.parse but it doesnt like what i am doing with a returned string from my server
我试图从服务器返回一个字符串,该字符串将被解析为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。
相关文章:
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 将客户端特定的日期格式返回到服务器MVC4
- 如何解决“;错误所请求的URL返回500-内部服务器错误”;
- 使用ajax上传的文件返回错误,但使用c#在asp.net的服务器端正常提交的文件
- post()向服务器动态生成的数据返回空响应
- NodeJS服务器在检索部分时返回505/404错误
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- 从服务器返回exe文件,并通过浏览器在客户端下载
- 如何检查服务器是否返回未定义然后忽略它
- 对服务器的 GET 请求返回 net::ERR_CONNECTION_REFUSED
- 如何从服务器端控制器返回或调用已签名的小程序的方法
- 如何使用 HTML 图像请求将数据发送到服务器,或返回数据作为响应
- 为什么我的 sinon 假服务器不返回任何内容
- ASP:代码隐藏的字段变量在从更新面板中的服务器返回时丢失值
- 在页面发布到服务器并返回错误后保留 javascript 更改
- web2py服务器返回错误,但已提交查询
- Ajax post后数组在服务器端返回为空
- 返回之前获取数据服务器端
- 当在运行nodejs的服务器上调用new Date()时,Date将返回服务器启动时的日期
- 从服务器调用确认对话框 ASP.NET.并返回服务器上的选择