2015-07-16 3 views
1

Учитывая структуру базы данных:Создание динамической иерархии объектов для Json сериализации с помощью Linq

| Context | Resource | TypeCode | Value    | 
|---------|----------|----------|---------------------| 
| Home | Header |   | Welcome to the site | 
| Home | Footer |   | copyright company | 
| Error 1 |   |   | Error!    | 
| UPC  | 55  | Name  | Product    | 
| UPC  | 55  | Weight | 10     | 

Мне нужно, чтобы иметь возможность генерировать этот Json:

{ 
    "Home": { 
    "Header": "Welcome to the site", 
    "Footer": "copyright company" 
    }, 
    "Error1": "Error!", 
    "UPC": { 
    "55": { 
     "Name": "Product", 
     "Weight": "10" 
    } 
    } 
} 

Я буду использовать это, чтобы накормить переводы к угловому переводу. Значение уже установлено на значение целевого языка. Я видел различные примеры такого рода сериализации, но все они принимают единую глубину целевых значений.

ответ

0

попробовать что-то вроде этого

List<List<string>> a = /*parse ur data to this*/; 
foreach(var pa in a){ 
    dynamic r = getDynamicObject(pa /*List<string>*/); 
    string jsonString = Newtonsoft.Json.SerializeObject(r); 
    /*you might have ur string*/ 
} 

/*separate function*/ 
GetDynamicObject(IEnumerable<string> a){ 
dynamic r = new ExpandoObject(); 
if(a.count > 2){ 
    return (r as Dictionary<string, object>).Add(a.First(), GetDynamicObject(a.Skip(1))); 
    } 
    else { 
    return (r as Dictionary<string, object>).Add(a.First(), a.Last()); 
} 
} 

примечание: -Я написал этот код здесь только может содержать ошибки компиляции времени.

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