2016-11-15 2 views
-5

У меня есть строка в следующем форматеРазделить разделенных запятыми значение ключа пара с обеих цитируемого

"Name":"ABC","Address":"Street1,Street2","City":"Pune" 

Я хочу, чтобы выход в

Name = ABC 
Address = Street1, Street2 
City = Pune 

код я использую

public string[] GetData(string op) 
{ 
    MDB result = new MDB(); 
    var split = op.Split(':'); 
    string[] keyValue; 
    foreach (string s in split) 
    { 
     keyValue = s.Split(','); 

     try 
     { 
      PropertyInfo propertyInfo = result.GetType().GetProperty(keyValue[0]); 

      if (propertyInfo != null) 
      { 
       propertyInfo.SetValue(result, Convert.ChangeType(keyValue[1], propertyInfo.PropertyType), null); 
      } 
     } 
     catch (Exception ex) 
     { 

     } 
    } 
} 

Однако, когда я разделяю текст на «,», я получаю следующий результат:

Name= ABC 
Address = Street1 

Как я могу получить адрес Street2?

+1

Можете ли вы показать, что вы пробовали? Образцы кода? –

+1

Можете ли вы показать свой код (воспроизводимый образец) и что не работает? –

+3

Я думаю, что кто-то с 4,5 тыс. Респондентов должен знать, как спросить – fubo

ответ

0

Похоже JSON, некоторые простые десериализации бы получить работу

public class User 
    { 
     public string Name { get; set; } 
     public string Address { get; set; } 
     public string City { get; set; } 
    } 

    private static void jsonDeserialize() 
    { 
     var json = "{\"Name\":\"ABC\",\"Address\":\"Street1,Street2\",\"City\":\"Pune\"}"; 

     User user = JsonConvert.DeserializeObject<User>(json); 
     Console.WriteLine("Name = "+ user.Name); 
     Console.WriteLine("Address = " + user.Address); 
    } 

Результат:

Name = ABC 
Address = Street1,Street2 
Смежные вопросы