gpt4 book ai didi

jquery - 从Json键值对获取值的问题

转载 作者:行者123 更新时间:2023-12-01 04:31:23 25 4
gpt4 key购买 nike

我正在关注this link构建客户端中继器。

根据上面的链接从 Json 键值对中检索值,我们可以使用 result[i].property,例如

for (var post in msg)
{
var x= msg[post].Date;
alert(x);
}

这里x返回Json字符串中的日期。当我尝试对我的数据使用相同的方法时,它总是返回为 undefined。我尝试弹出一个 alert(msg.d),其中显示包含我所有数据的漂亮 Json 字符串。但是当我尝试 msg[post].Date(property name) 时,它总是返回 undefined

请帮忙..

提前致谢。

更新:

我从后端返回一个通用列表,然后使用以下代码将其转换为 Json。

公共(public)静态字符串ConvertToJSON(此对象obj) {

    DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());    

MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, obj);
string jsonobj = Encoding.Default.GetString(ms.ToArray());
ms.Dispose();
return jsonobj;
}

然后我将返回的 Json 附加到 stringbuilder 并将其返回到 Jquery ajax 方法。返回的 Json 看起来像一个 string ,而不是一个对象,因此我无法从 Json 键值对中获取任何值..

最佳答案

更新:

听起来您正在服务器端对数据进行双重序列化,返回一个 JSON 字符串,该字符串本身被序列化为 JSON。当它到达客户端并且 jQuery 自动反序列化第一层 JSON 时,您仍然保留手动构建的 JSON 字符串。

您应该返回List<T>作为服务方法的返回值,并让框架处理 JSON 序列化。

原始答案:

假设该对象仍包含在 ASP.NET AJAX's ".d" wrapper 中,正如您所暗示的:

for (var post in msg.d) {     
var x = msg.d[post].Date;

alert(x);
}

或者,传统的循环,这可能更简单:

for (var i = 0; i < msg.d.length; i++) {
var x = msg.d[i].Date;

alert(x);
}

关于jquery - 从Json键值对获取值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2201597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com