2015-06-05 40 views
0

https://opendata.miamidade.gov/Corrections/Jail-Bookings-May-29-2015-to-current/7nhc-4yqn查询/反序列化多级字段对象的问题

我不这样做,如果有人可以帮助我:我一直有问题解析/反序列化Location对象内的地址信息。

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

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":""}"键入 'JailLog_WFA.HumanAddress'。路径“location_1.human_address”,1号线, 位置424

+0

你使用自己的'Location'和'HumanAddress'类型的任何原因? 'SODA.NET'库(我假设你也使用它)在'SODA.Models'下定义了这些类。你有没有尝试过使用它们? – kaveman

回答

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_地址对象中删除了多余的引号,并且能够一次解析所有内容。