2016-12-15 1 views
0

У меня есть объект Json, который возвращает json.Как получить ключ от вложенного объекта с помощью объекта Json и вернуться в массив?

я называю апи и преобразовать в объект JSON:

var returnJson = new JavaScriptSerializer().Deserialize(removeChar, targetType: null); 

Результаты:

{ 
    "Type": "Local", 
    "results": { 
    "A": 4.4023, 
    "B": 1.6403, 
    "C": 2.3457 
} 

как делать грамотные через этот JSon объект и вернуть только ключи в массиве?

Я не зная, что идет в цикле Еогеасп:

foreach(var item in returnJson) 
{ 
//get just keys.ToArray(); 
} 

файл класса

public class BasicResults 
    { 
     public string Type { get; set; } 
     public Result results { get; set; } 
    } 

public class Result 
    { 
     public double A { get; set; } 
     public double B { get; set; } 
     public double C { get; set; } 
    } 
} 

Я думаю, что это в правильном направлении, но не может предназначаться вложенную скорость:

object[] getResults = returnJson.GetType() 
         .GetProperties() 
         .Select(p => 
         { 
          object value = p.GetValue(results); 
          return value == null ? null : value.ToString(); 
         }) 
         .ToArray(); 
+0

Вы хотите, чтобы получить A, B, C в вашем примере? – Seminda

+0

да, пожалуйста, только эти значения. Идеально возвращается в массив? – user3515765

+1

Кажется очень похожим на [этот вопрос] (https://stackoverflow.com/questions/41171017/how-to-get-the-key-from-json-object-and-convert-into-an-array), который был спросил 4 часа назад. – dbc

ответ

0

Создайте класс, например, ниже

public class JsonData 
{ 
    public string Type { get; set; } 
    public Dictionary<string, string> Results { get; set; } 
} 

И сделать Deserialize

var returnJson = new JavaScriptSerializer().Deserialize<JsonData>(yourJsonString); 

Тогда вы можете получить ключи

var keys = returnJson .Results.Keys; 
+0

, можете ли вы привести пример того, как реализовать? – user3515765

+0

var returnJson = новый JavaScriptSerializer(). Deserialize (yourJsonString); не работает Мне нужно использовать var returnJson = new JavaScriptSerializer(). Deserialize (removeChar, targetType: null); – user3515765

+0

Я буду обновлять вопрос как уже установленный класс. – user3515765

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