2014-01-12 2 views
0

Код, указанный ниже, должен получать данные из веб-службы, подключить его к определенному списку «Группы». Это приложение для приложения windows 8 metro.Использовать данные JSON из сервиса

HttpClient client = new HttpClient(); 
HttpResponseMessage response = await client.GetAsync(App.DataServiceUrl + "/productcategory"); 
var Groups = new List<GroupList>(); 

if (response.IsSuccessStatusCode) 
{ 
    var content = await response.Content.ReadAsStringAsync(); 
    var prods = JsonConvert.DeserializeObject<dynamic>(content); 
    foreach (var data in prods) 
    { 
     var dataGroup = new GroupList 
       (
       data.term_id, 
        data.name, 
       data.slug, 
        data.description, 
        data.taxonomy 
      ); 
     Groups.Add(dataGroup); 

    } 
} 

списке групп:

public class GroupList : SampleDataCommon 
{ 


    public GroupList(String uniqueId, String title, String subtitle, String imagePath, String description) 


: base(uniqueId, title, subtitle, imagePath, description) 

}

Одним из примеров данных из службы:

[{"term_id":"64","name":"Argentina","slug":"argentina","term_group":"0","term_taxonomy_id":"64","taxonomy":"product_cat","description":"","parent":"13","count":"20","meta_id":"154","woocommerce_term_id":"64","meta_key":"order","meta_value":"0","cat_ID":"64","category_count":"20","category_description":"","cat_name":"Argentina","category_nicename":"argentina","category_parent":"13"},...] 

Но приложение не распознает значения JSon здесь:

data.term_id, 
data.name, 
data.slug, 
data.description, 
data.taxonomy 

Вместо при запуске приложения я получаю эту ошибку:

«Неожиданный символ встречается при разборе значение: <. Путь ", строка 4, позиция 2"

Я пытаюсь получить значения term_id, имя и т. Д. Из веб-службы json и использовать ее в своем приложении. Как это сделать? Что я делаю не так? Я использую значения JSON?

Вернулся из json2csharp:

public class RootObject 
{ 
    public string term_id { get; set; } 
    public string name { get; set; } 
    public string slug { get; set; } 
    public string term_group { get; set; } 
    public string term_taxonomy_id { get; set; } 
    public string taxonomy { get; set; } 
    public string description { get; set; } 
    public string parent { get; set; } 
    public string count { get; set; } 
    public string meta_id { get; set; } 
    public string woocommerce_term_id { get; set; } 
    public string meta_key { get; set; } 
    public string meta_value { get; set; } 
    public string cat_ID { get; set; } 
    public string category_count { get; set; } 
    public string category_description { get; set; } 
    public string cat_name { get; set; } 
    public string category_nicename { get; set; } 
    public string category_parent { get; set; } 
} 
+0

Вы говорите: «Данные из веб-службы в формате XML», но используют 'JsonConvert.DeserializeObject'. Также вы говорите: «Один пример данных, возвращаемых с новой службы:« Но данные уже находятся в json. –

+0

Первая веб-служба, в которой код работает с возвращенными данными в XML, но новая служба, которую я сейчас пытаюсь использовать, находится в JSON. Теперь я пытаюсь использовать службу JSON. – Tester

+0

Tester, Тогда почему вы опубликовали эту несвязанную информацию? Что это связано с тем, что вы пытаетесь сделать? –

ответ

0

Вы используете различные свойства dataProd в качестве значений параметров для нового экземпляра CategoryList. Вам нужно будет решить, какой тип, получаемый из GroupList, который вы хотите использовать для хранения новых данных, и заменить экземпляр CategoryList этим типом и инициализировать его (через конструктор или свойства), чтобы новые данные переходили в группы

+0

Прошу прощения, это была ошибка. См. Правки выше, пожалуйста. – Tester

Смежные вопросы