List> serialize to JObject - C#
Формулировка задачи:
Добрый день. Еть следующая задачка.
имеется список
полный данными из JSON
выполнено следующим образом
так вот data, после некоторых изменений надо загнать обратно в json, не нарушив структуру. подскажите пожалуйста.
1 значение, которое должно быть ключем, идет как обычная составляющая
а надо чтобы title был ключем
Листинг программы
- List<Dictionary<string, string>> data = new List<Dictionary<string, string>>();
Листинг программы
- string filename = "translates.json";
- var s = File.ReadAllText(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), filename));
- // parsing json
- var json = JObject.Parse(s);
- foreach (var obj in json.Properties())
- {
- var row = new Dictionary<string, string>(languages.Count + 1);
- row["title"] = obj.Name;
- foreach (var language in languages)
- {
- row[language] = obj.Value[language].ToString();
- }
- data.Add(row);
- }
попытался, попытка не увенчалась успехом
Листинг программы
- string json = JsonConvert.SerializeObject(data, new KeyValuePairConverter());
- File.WriteAllText(@"blahblah.json", json);
получается вот такое
Листинг программы
- [
- {
- "title": "test",
- "en": "asdsadsadas",
- "ru": "123654789",
- "tr": "123654789"
- },
- {
- "title": "mama",
- "en": "Mama",
- "ru": "*Mama",
- "tr": "*Mama"
- },
- {
- "title": "get_some_desc",
- "en": "Get some desc",
- "ru": "*Get some desc",
- "tr": "*Get some desc"
- },
- {
- "title": "fraze_for_translate",
- "en": "Fraze for translate",
- "ru": "*Fraze for translate",
- "tr": "*Fraze for translate"
- }
- ]
Листинг программы
- {
- "test":{
- "en": "asdsadsadas",
- "ru": "123654789",
- "tr": "123654789"
- },
- "mama":{
- "en":"Mama",
- "ru":"*Mama",
- "tr":"*Mama"
- },
- "get_some_desc":{
- "en":"Get some desc",
- "ru":"*Get some desc",
- "tr":"*Get some desc"
- },
- "fraze_for_translate":{
- "en":"Fraze for translate",
- "ru":"*Fraze for translate",
- "tr":"*Fraze for translate"
- }
- }
Решение задачи: «List> serialize to JObject»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using Newtonsoft.Json;
- class Program
- {
- static void Main(string[] args)
- {
- string s = @"{
- ""test"": {
- ""en"": ""Test"",
- ""ru"": ""*Test"",
- ""tr"": ""*Test""
- },
- ""mama"": {
- ""en"": ""Mama"",
- ""ru"": ""*Mama"",
- ""tr"": ""*Mama""
- },
- ""get_some_desc"": {
- ""en"": ""Get some desc"",
- ""ru"": ""*Get some desc"",
- ""tr"": ""*Get some desc""
- },
- ""fraze_for_translate"": {
- ""en"": ""Fraze for translate"",
- ""ru"": ""*Fraze for translate"",
- ""tr"": ""*Fraze for translate""
- }
- }";
- var json = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(s);
- foreach (string key in json.Keys)
- {
- Console.WriteLine("Key = {0}", key);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д