查询/反序列化多级域对象时出现问题

时间:2015-06-05 20:42:11

标签: socrata soda

https://opendata.miamidade.gov/Corrections/Jail-Bookings-May-29-2015-to-current/7nhc-4yqn

如果有人可以帮我解决这个问题:我在解析/反序列化位置对象中的地址信息方面遇到了问题。

这是我正在使用的代码片段:

var results = dataset.Query<MiamiDade_JailLog>(soql);

public class MiamiDade_JailLog
{
    public string chargecode3 { get; set; }
    public string charge2 { get; set; }
    public string bookdate { get; set; }
    public string charge3 { get; set; }
    public string chargecode1 { get; set; }
    public string chargecode2 { get; set; }
    public string charge1 { get; set; }
    public string dob { get; set; }
    public Location1 location_1 { get; set; }
    public string defendant { get; set; }
}

public class Location1
{
    public bool needs_recoding { get; set; }
    public string longitude { get; set; }
    public string latitude { get; set; }
    public HumanAddress human_address { get; set; }
}

public class HumanAddress
{
    public string address { get; set; }
    public string city { get; set; }
    public string state { get; set; }
    public string zip { get; set; }
}

这是错误消息:

  

转换值时出错   输入"{"address":"HOMELESS","city":"MIAMI","state":"FL","zip":""}"   &#39; JailLog_WFA.HumanAddress&#39 ;.路径&#39; location_1.human_address&#39;,第1行,   第424位。

1 个答案:

答案 0 :(得分:0)

这是我从Socrata得到的回复: 如果你看看这个json响应,https://opendata.miamidade.gov/resource/7nhc-4yqn.json 您会在location_1列中看到我们提供的对象{} 然后在那里你会看到human_address我们提供的字符串""而不是对象。 对于JavaScript,它只是JSON.parse("{\"address\":\"17725 NW 8TH PL\",\"city\":\"MIAMI GARDENS\",\"state\":\"FL\",\"zip\":\"33169\"}"); 从您发送的代码中,您看起来将HumanAddress视为对象而不是需要解析为对象的字符串。 如果你做这个改变它应该工作。

......这是我的回答: 你给了我很好的信息。但是我已经做了一个解决方法来解析对象。 我刚刚从human_ address对象中删除了额外的引号,并且能够一次解析所有内容。