2015-07-14 5 views
1

У меня есть список значений в массиве Cmnts какПолучить значение из строки массива, поиска идентификатора

«6_12_g2_text»: «22», «6_12_g3_text»: «33», «6_12_g4_text» : "44"

var CmntsValue = forms["textvalue"];  
string[] Cmnts = CmntsValue.Split('{','}'); 

Нет Я хочу найти 6_12_g2_text и вернуть 22 (для 6_12_g3_text и возврата 33). Как я могу достичь этого?


Я получил значение, показанное на следующем изображении! Json values

Вставьте мой обновленный код здесь [на втором изображении]. Просьба уточнить, что Not get all records properly

+2

Вам не нужен массив, вы хотите «Словарь ». –

+0

Это строка или 'Список '? –

ответ

4

Значение, которое вы на самом деле представляет собой строку JSON. Использование Json.NET вы можете легко разобрать строку в Dictionary<string, int>, например, так:

var json = "{\"6_12_g2_text\":\"22\",\"6_12_g3_text\":\"33\",\"6_12_g4_text\":\"44\"}"; 
var dictionary = JsonConvert.DeserializeObject<Dictionary<string, int>>(json); 

А затем извлечь любое значение по ключу:

int value; 
if (dictionary.TryGetValue("6_12_g2_text", out value)) 
{ 
    Console.WriteLine(value); 
} 

Edit:

После просмотра вашего фактического JSON string, вам нужно будет выполнить дополнительную работу:

var json = "{\"1_3_g1_text\":\"11\"} 
      {\"1_3_g2_text\":\"\"} 
      {\"6_12_g2_text\":\"test\"} 
      {\"6_12_g3_text\":\"\"} 
      {\"1_17_g1_text\":\"works\"} 
      {\"5_19_g2_text\":\"submitted\"} 
      {\"5_19_g3_text\":\"2\"}"; 

var jsons = json.Split('{', '}').Where(x => !string.IsNullOrWhiteSpace(x)); 
var concatenatedJson = string.Format("{{{0}}}", string.Join(",", jsons)); 

var intermidiateDict = JsonConvert.DeserializeObject<Dictionary<string, string>>(
                     concatenatedJson); 
+0

Это хорошее решение. –

+0

@ Ювал Ицчаков Спасибо. Теперь я могу получить ценность. Но для нулевых значений я получил ошибку: «Ошибка преобразования значения {null], чтобы ввести« System.Int32 ». Path '1_3_g1_text', строка 1, позиция 17." Как я могу преодолеть это – KaviSuja

+0

@KaviSuja У вас есть 'null' в вашем JSON? –

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