2015-06-05 6 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

любая причина, по которой вы используете свои собственные типы «Местоположение» и «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_ address и смог разобрать все сразу.