dhiraj mane Ответов: 2

Проходят JSON формата данных, как результат в формате JSON


У меня были такие данные в базе данных

{"city":"CAMBRIDGE","id":"xyz","latitude":44.36164,"longitude":-72.11383,"phoneNumber":"","state":"MA","storeNumber":"142","storeType":"xyz","streetAddress":"330 RIVER STREET", "zip": "02139", "storeName": "xyz"}

{"city":"CAMBRIDGE","id":"xyo","latitude":44.36164,"longitude":-72.11383,"phoneNumber":"","state":"MA","storeNumber":"142","storeType":"xyo","streetAddress":"330 RIVER STREET", "zip": "02139", "storeName": "xyo"}

я хочу передать эти данные в виде результата json из web api

Что я уже пробовал:

public HttpResponseMessage GetLocationData(string Latitude, string Longitude, float Miles)
       {
           List<Location> locations = _dpDataLayerService.GetLocations(Latitude, Longitude, Miles);

           var locationData = string.Empty;
           foreach (var item in locations)
           {
               locationData += item.Json + ',';
           }
                     var result = new HttpResponseMessage { Content = new StringContent(locationData, System.Text.Encoding.UTF8, "application/json") };
           return result;


       }


я хочу показать эти данные в массиве, теперь они отображаются так, как есть.

2 Ответов

Рейтинг:
8

dhiraj mane

public IEnumerable<locationmodel> GetLocationData(string Latitude, string Longitude, float Miles)
       {
           List<location> locations = _dpDataLayerService.GetLocations(Latitude, Longitude, Miles);

           List<locationmodel> locationModel = new List<locationmodel>();

           var locationData = string.Empty;
           foreach (var item in locations)
           {
               LocationModel _location = new LocationModel();
               _location.Json = JsonConvert.DeserializeObject<json>(item.Json);
               locationModel.Add(_location);
           }

           return locationModel;
       }


Рейтинг:
0

Garth J Lancaster

Массив JSON этих объектов будет выглядеть следующим образом

"пункты назначения":[{"city":"CAMBRIDGE","id":"xyz","latitude":44.36164,"longitude":-72.11383,"phoneNumber":"","state":"MA","storeNumber":"142","storeType":"xyz","streetAddress":"330 RIVER STREET", "zip": "02139", "storeName": "xyz"},{"city":"CAMBRIDGE","id":"xyo","latitude":44.36164,"longitude":-72.11383,"phoneNumber":"","state":"MA","storeNumber":"142","storeType":"xyo","streetAddress":"330 RIVER STREET", "zip": "02139", "storeName": "xyo"}]

ссылка : Синтаксис JSON[^]


dhiraj mane

Спасибо, можете ли вы сказать мне, как добавить эти данные в местоположения? в настоящее время структура списка моих местоположений такова
место открытый класс
{
public string StoreId { get; set; }
публичная строка Json { get; set; }
public float Distance { get; set; }
}

Garth J Lancaster

ну, даже мой JSON был неправ - если вы используете

{"locations":[{"city":"CAMBRIDGE","id":"xyz","latitude":44.36164,"longitude":-72.11383,"phoneNumber":"","state":"MA","storeNumber":"142","storeType":"xyz","streetAddress":"330 река STREET","zip":"02139","storeName":"xyz"},{"city":"CAMBRIDGE","id":"xyo","latitude":44.36164,"longitude":-72.11383,"phoneNumber":"","state":"MA","storeNumber":"142","storeType":"xyo","streetAddress":"330 RIVER STREET", "zip": "02139", "storeName": "xyo"}]}

вы можете десериализоваться в


место открытый класс
{
public string city { get; set; }
public string id { get; set; }
public double latitude { get; set; }
public double longitude { get; set; }
публичная строка phoneNumber { get; set; }
общественного строка состояния { получить; набор; }
public string storeNumber { get; set; }
public string storeType { get; set; }
общественного строка улицы { получить; набор; }
public string zip { get; set; }
public string storeName { get; set; }
}

публичный класс RootObject
{
публичный список & lt;location & gt; locations { get; set; }
}

или более простое представление JSON

[{"city":"CAMBRIDGE","id":"xyz","latitude":44.36164,"longitude":-72.11383,"phoneNumber":"","state":"MA","storeNumber":"142","storeType":"xyz","streetAddress":"330 река STREET","zip":"02139","storeName":"xyz"},{"city":"CAMBRIDGE","id":"xyo","latitude":44.36164,"longitude":-72.11383,"phoneNumber":"","state":"MA","storeNumber":"142","storeType":"xyo","streetAddress":"330 RIVER STREET", "zip": "02139", "storeName": "xyo"}]

может сериализоваться в

публичный класс RootObject
{
public string city { get; set; }
public string id { get; set; }
public double latitude { get; set; }
public double longitude { get; set; }
публичная строка phoneNumber { get; set; }
общественного строка состояния { получить; набор; }
public string storeNumber { get; set; }
public string storeType { get; set; }
общественного строка улицы { получить; набор; }
public string zip { get; set; }
public string storeName { get; set; }
}

но вы должны сделать некоторую ручную работу - вот почему я предпочитаю метод списка "местоположения" ... это то, о чем вы спрашивали ?

Garth J Lancaster

поэтому, учитывая

место открытый класс
{
public string city { get; set; }
public string id { get; set; }
public double latitude { get; set; }
public double longitude { get; set; }
публичная строка phoneNumber { get; set; }
общественного строка состояния { получить; набор; }
public string storeNumber { get; set; }
public string storeType { get; set; }
общественного строка улицы { получить; набор; }
public string zip { get; set; }
public string storeName { get; set; }
}

и {"city":"CAMBRIDGE","id":"xyz","latitude":44.36164,"longitude":-72.11383,"phoneNumber":"","state":"MA","storeNumber":"142","storeType":"xyz","streetAddress":"330 RIVER STREET","zip":"02139","storeName": "xyz"} в строке 'json' вы можете сделать

Location aLocation = JsonConvert.DeserializeObject & lt;location> (json);

dhiraj mane

Спасибо за помощь. Для этого я использую технику десериализации