【问题标题】:Convert from JSON to array of objects从 JSON 转换为对象数组
【发布时间】:2017-06-13 14:40:13
【问题描述】:

我正在尝试将 Hazards(我创建的类)数组转换为 JSON,

这是我的代码:

$.ajax({
    async: true,
    url: web + "/GetHazards",
    method: "POST",
    contentType: "application/json",
    success: function (data) {
        var res = data.d;
        var i;
        alert(res[0]);

返回的数据是这样的:

"[{\"Hazard_ID\":3014,\"Hazard_Lat\":32.2615929,\"Hazard_Long\":35.01423},{\"Hazard_ID\":3013,\"Hazard_Lat\":32.3426857,\"Hazard_Long\":34.9103165},{\"Hazard_ID\":3012,\"Hazard_Lat\":32.3426857

我的服务器端代码返回了我需要的正确值,但问题是当我提醒 res[i] 时,它的行为就像 res 是一个字符串并提醒我“[”

我需要得到的是 {\"Hazard_ID":3014,\"Hazard_Lat\":32.2615929,\"Hazard_Long\":35.01423}

顺便说一句,我不知道它是否介意这是我的服务器端代码:

{
    List<Returned_Hazard> rh = new List<Returned_Hazard>();
    JavaScriptSerializer json = new JavaScriptSerializer();
    .
    .
    .
    while (reader.Read())
    {
        Returned_Hazard RH = new Returned_Hazard(
            int.Parse(reader[0].ToString()),
            float.Parse(reader[1].ToString()),
            float.Parse(reader[2].ToString())
        );
        rh.Add(RH);
    }
    command.Connection.Close();
    return json.Serialize(rh);
}

【问题讨论】:

  • data=JSON.parse(data)
  • JSON.parse(res) Object
  • 未捕获的 SyntaxError:JSON.parse () 位置 1 处的 JSON 中的意外标记 o,我尝试过

标签: javascript c# json ajax


【解决方案1】:

您需要解析 JSON,使用 JSON.parse:

var data = { d: "[{\"Hazard_ID\":3014,\"Hazard_Lat\":32.2615929,\"Hazard_Long\":35.01423},{\"Hazard_ID\":3013,\"Hazard_Lat\":32.3426857,\"Hazard_Long\":34.9103165}]"
};

var res = JSON.parse(data.d);
console.log(res[0].Hazard_ID); //3014

【讨论】:

  • 一会儿我试试
  • @كرمحاجيحيى 没问题,如果有帮助,请点赞并标记为答案。
  • 完成了,我还有一个简单的问题,我需要做什么才能将所有这些数据复制到一个新数组中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
  • 2020-10-02
  • 1970-01-01
  • 2018-09-12
  • 2015-10-30
相关资源
最近更新 更多