2016-02-17 3 views
2

Предположим, у меня есть json сохраненный в моей базе данных?Как петля над json Строка в C#?

{ 
    "Type": "IPS", 
    "Size": "4.7 Inch", 
    "Protection": "OGS with full lamination technology" 
} 

Число свойств динамическое. Это означает, что для другой строки мне нужно 5 или 6 свойств. Есть ли способ перебрать его и получить в виде объектов.

Таким образом, я хочу получить тип, размер, защиту как файлы, чтобы создать другой формат json. Как я могу это сделать ?

JObject - хорошее решение. Но позвольте нам сказать, что я строю строчные строки для создания динамического объекта, только для json-поля, которое я хочу обработать над ним, и добавить свойства к динамическому объекту, который я создаю. Могу ли я достичь этого?

Для примера:

я пр это

var dataTable= DbHelper.GetDatatable(StoredProcedureName); 

Теперь

foreach (DataRow row in rows) 
{ 
    var attributes = row["Attributes"].ToString(); 
    var obj = new 
    { 
     Id = (int)row["ID"], 
     Name = row["ProductName"].ToString() 

    }; 
    list.Add(obj); 
} 

так грести атрибуты содержат JSON, указанный ранее,

Могу ли я петля сейчас, чтобы получить этот окончательный результат

var obj = new 
{ 
    Id = (int)row["ID"], 
    Name = row["ProductName"].ToString(), 
    Type = IPS, 
    Size = 4.7 Inch, 
    Protection = OGS with full lamination technology 

}; 
+2

Вы можете это сделать, если вы используете Json.NET 'JsonConvert.DeserializeObject <Словарь <строка, динамический >> (json) '. –

+0

@HariPrasad Большое спасибо. – user123456

ответ

0

Вы можете создать функцию tabelar, которая имеет в качестве параметра этой строки и внутри вас разделить вашу строку в столбцах и возвращает результат в виде строки таблицы и сделать внешний применить с таблицей строк

2

Вам лучше всего для этого используйте существующую библиотеку JSON. Newtonsoft JSON Приходит на ум.

Пример (украдено из их домашней странице)

string json = @"{ 
    'Name': 'Bad Boys', 
    'ReleaseDate': '1995-4-7T00:00:00', 
    'Genres': [ 
    'Action', 
    'Comedy' 
    ] 
}"; 

Movie m = JsonConvert.DeserializeObject<Movie>(json); 

string name = m.Name; 
// Bad Boys 
4

Вы используете Json.NET? Если нет, я бы очень рекомендовал его. Если добавить его в свой проект, он становится таким же простым, как это:

JObject json = JObject.Parse(str); 

Здесь больше информации о Json.NET: http://www.newtonsoft.com/json/help/html/Introduction.htm

+1

[И вот прямая ссылка на Nuget с ним.] (Https://www.nuget.org/packages/Newtonsoft.Json/) – PTwr

+0

Я изменил свой вопрос, любую помощь по нему. – user123456

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