Не могу десериализовать словарьПри синтаксическом анализе значения обнаружен неожиданный символ - PullRequest
0 голосов
/ 24 января 2019

У меня есть словарь.

Dictionary<string, List<string>>

С помощью этой строки я сериализовал этот объект;

var ss = JsonConvert.SerializeObject(objDic, Formatting.Indented);

Допустим JSON!

{
  "keywords a": [
    "keywords analytics,",
    "keywords abstract,",
    "keywords amazon,",
    "keywords anywhere,",
    "keywords adwords,",
    "keywords architecture,",
    "keywords apa,",
    "keywords app store,",
    "keywords and seo,",
    "keywords armor,"
  ],
  "keywords b": [
    "keywords book,",
    "keywords bidding,",
    "keywords broad match,",
    "keywords blog,",
    "keywords business,",
    "keywords book pdf,",
    "keywords by country,",
    "keywords by industry,",
    "keywords bridge,",
    "keywords bidding strategy,"
  ],
  "keywords c": [
    "keywords creator,",
    "reserved keywords c,",
    "keywords c#,",
    "keywords combo list,",
    "keywords cv,",
    "keywords checker,",
    "keywords check,",
    "keywords css,",
    "keywords computer,",
    "keywords consulting resume,"
  ],
  "keywords d": [
    "keywords definition,",
    "keywords density checker,",
    "keywords definition in c,",
    "keywords density,",
    "keywords dublin,",
    "keywords density formula,",
    "keywords digital marketing,",
    "keywords design,",
    "keywords def,",
    "keywords database,"
  ],
  "keywords e": [
    "keywords everywhere,",
    "keywords explorer,",
    "keywords ekleme,",
    "keywords everywhere chrome,",
    "keywords essay,",
    "english keywords,"
  ],
  "keywords f": [
    "keywords finder,",
    "keywords for amazon,",
    "keywords for fluency intermediate pdf,",
    "keywords for fluency pre intermediate pdf,",
    "keywords for youtube,",
    "keywords for slayer leecher,",
    "keywords for seo,",
    "keywords for present perfect,",
    "keywords for resume,",
    "keywords for generator,"
  ],
  "keywords g": [
    "keywords generator,",
    "keywords google,",
    "keywords google seo,",
    "keywords google play,",
    "keywords google analytics,",
    "keywords google adwords tool,",
    "keywords google adwords,",
    "keywords gwent,",
    "keywords good,",
    "keywords google free,"
  ],
  "keywords h": [
    "keywords html,",
    "keywords history,",
    "keywords how to seo,",
    "keywords human resources,",
    "keywords high cpc,",
    "keywords how many,",
    "keywords hearthstone,",
    "keywords how to write,",
    "keywords hq,",
    "keywords halloween,"
  ],
  "keywords i": [
    "keywords io,",
    "keywords international,",
    "keywords in java,",
    "keywords in c,",
    "keywords in python,",
    "keywords imdb,",
    "keywords in html,",
    "keywords in sql,",
    "keywords index medicus,",
    "keywords in seo,"
  ],
  "keywords j": [
    "keywords java,",
    "keywords javascript,",
    "keywords jobs,",
    "keywords journal,",
    "keywords job search,",
    "keywords john patrick leary,",
    "keywords jewelry,",
    "keywords japan,",
    "keywords jeet,",
    "keywords job application,"
  ],
  "keywords k": [
    "keywords kullanımı,",
    "keywords kindle,",
    "keywords kdp,",
    "keywords key words,",
    "keywords kotlin,",
    "keywords keywords tool,",
    "keywords kostenlos finden,",
    "custom keywords katalon,",
    "keywords. try more general keywords,",
    "how are negative keywords different from other keywords,"
  ],
  "keywords l": [
    "keywords list,",
    "keywords latex,",
    "keywords linkedin,",
    "keywords lightroom,",
    "keywords localization,",
    "keywords like as like and is are often used when what type of context clue is used,",
    "keywords leary,",
    "keywords logo,",
    "keywords length seo,",
    "keywords list in java,"
  ],
  "keywords m": [
    "keywords meta,",
    "keywords mesh,",
    "keywords meta tag,",
    "keywords maker,",
    "keywords meaning,",
    "keywords montreal,",
    "keywords marketing,",
    "keywords minecraft,",
    "keywords mysql,",
    "keywords magic the gathering,"
  ],
  "keywords n": [
    "keywords ne demek,",
    "keywords nedir,",
    "keywords nasıl yazılır,",
    "keywords nasıl olmalı,",
    "keywords netflix,",
    "keywords netflix slayer leecher,",
    "keywords neil patel,",
    "keywords nature,",
    "keywords number of searches,",
    "keywords node js,"
  ],
  "keywords o": [
    "keywords or key words,",
    "keywords oluşturucu,",
    "keywords of present simple,",
    "keywords of past continuous,",
    "keywords of present continuous,",
    "keywords of present perfect,",
    "keywords on youtube,",
    "keywords of java,",
    "keywords of c++,",
    "keywords of mysql,"
  ],
  "keywords p": [
    "keywords planner,",
    "keywords present perfect,",
    "keywords past continuous,",
    "keywords present continuous,",
    "keywords present simple,",
    "keywords past simple,",
    "keywords present perfect continuous,",
    "keywords past perfect,",
    "keywords planner tool,",
    "keywords planner google,"
  ],
  "keywords q": [
    "keywords qa,",
    "keywords quality score,",
    "keywords quotes,",
    "keywords questions,",
    "keywords quizlet,",
    "keywords que es,",
    "keywords quality assurance,",
    "keywords que son,",
    "keywords que es en español,",
    "keywords quantitative research,"
  ],
  "keywords r": [
    "keywords research,",
    "keywords resume,",
    "keywords research tool,",
    "keywords ranking,",
    "keywords research google,",
    "keywords research paper,",
    "keywords research free,",
    "keywords revealer,",
    "keywords related to books,",
    "keywords related to bpo,"
  ],
  "keywords s": [
    "keywords studios,",
    "keywords seo,",
    "keywords search,",
    "keywords studios ekşi,",
    "keywords studios katowice,",
    "keywords slayer leecher,",
    "keyword shitter,"
  ],
  "keywords t": [
    "keywords tool,",
    "keywords tool youtube,",
    "keywords türkçe anlamı,",
    "keywords tool google,",
    "keywords tools google,",
    "keywords tool adwords,",
    "keywords tool google adwords,",
    "keywords trend google,",
    "keywords travel,",
    "keywords target audience,"
  ],
  "keywords u": [
    "keywords used in exception handling,",
    "keywords used in java,",
    "keywords used in python,",
    "keywords used in exception handling in c++,",
    "keywords upsc,",
    "keywords usage test,",
    "keywords used in c++,",
    "keywords used,",
    "keywords used in resume,",
    "keywords used by recruiters,"
  ],
  "keywords v": [
    "keywords volume checker,",
    "keywords vs tags,",
    "keywords vs key words,",
    "keywords vs reserved words,",
    "keywords vs search terms,",
    "keywords vision ias,",
    "keywords video,",
    "keywords value,",
    "keywords vs adwords,",
    "keywords vmc,"
  ],
  "keywords w": [
    "keywords wrapper,",
    "keywords with peter and jane,",
    "keywords wordpress,",
    "keywords website,",
    "keywords williams,",
    "keywords wikipedia,",
    "keywords with high cpc,",
    "keywords with ladybird,",
    "keywords with +,",
    "keywords wordstream,"
  ],
  "keywords x": [
    "keywords xing,",
    "keywords xtreme,",
    "keywords xenapp,",
    "keywords xenapp 6.5,",
    "keywords xhtml,",
    "keywords xmp,",
    "keywords xml,",
    "top keywords xing,",
    "adobe bridge keywords xml,",
    "pdf keywords xmp,"
  ],
  "keywords y": [
    "keywords youtube,",
    "keywords yoast seo,",
    "keywords youtube videos,",
    "keywords yoga,",
    "keywords yoast,",
    "keywords yii2,",
    "keywords your searches used,",
    "keywords youtube channel,",
    "keywords youtube tags,",
    "keywords youtube free,"
  ]
}

следующая строкаthis.

var gg = JsonConvert.DeserializeObject<string>(ss);

В этой строке я получаю сообщение об ошибке, как показано ниже.

При анализе значения обнаружен неожиданный символ: {.Путь '', строка 1, позиция 1.

ОК.Я пробовал это также.

var gg = JsonConvert.DeserializeObject<List<string>>(ss);

Внимание к List<string>.

И я получаю эту ошибку.

Невозможно десериализовать текущий объект JSON (например, {"name ":" value "}) в тип 'System.Collections.Generic.List`1 [System.String]', поскольку для корректной десериализации тип требует массив JSON (например, [1,2,3]).Чтобы исправить эту ошибку, либо измените JSON на массив JSON (например, [1,2,3]), либо измените десериализованный тип так, чтобы это был нормальный тип .NET (например, не примитивный тип, например, целое число, а не тип коллекции, например,массив или список), которые можно десериализовать из объекта JSON.JsonObjectAttribute также можно добавить к типу, чтобы заставить его десериализоваться из объекта JSON.

Я хочу десериализовать код, который вы видели выше, обратно в Dictionary<string, List<string>>

Спасибо большоемного.

1 Ответ

0 голосов
/ 24 января 2019

Вы пытаетесь десериализовать JSON для Dictionary<string, List<string>> в string. Попробуйте вместо этого:

var gg = JsonConvert.DeserializeObject<Dictionary<string, List<string>>(ss);

EDIT

Я проверил следующее и не было проблем:

public void Test()
{
    test = new Dictionary<string, List<string>>();
    test.Add("1", new List<string>() { "a", "b", "c" });
    test.Add("2", new List<string>() { "a", "b", "c" });
    test.Add("3", new List<string>() { "a", "b", "c" });
    test.Add("4", new List<string>() { "a", "b", "c" });
    test.Add("5", new List<string>() { "a", "b", "c" });

    string json = JsonConvert.SerializeObject(test, Formatting.Indented);
    Dictionary<string, List<string>> deserialized = JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(json);
}
...