2016-07-20 11 views
2

私は次の文字列があります。この文字列は基本的に私はそれに全体を引っ張ることができる方法Dictionary<string,string>、ですのでこの文字列をDictionary <string、string>に分割する方法は?

var s = someString.Split(new[] {"\",\""}, StringSplitOptions.RemoveEmptyEntries); 
var firstEntryValue = s[0].Split(':')[1]; 
var secondEntryValue = s[1].Split(':')[1]; 

:私はこれを分割するために、次の長い構文を使用することができます

{"key1":"value1","key2":"value2,some other part of value2"} 

を基本的に1行に入力しますか?私はこのような何かを見てきました

var s = someString.Split(new[] {"\",\""}, StringSplitOptions.RemoveEmptyEntries) 
    .Select(p => p.Split(':')) 
    .ToDictionary(split => split[0], split => split[1]); 

しかし、それはスローとインデックス境界エラーのうち。同じような構文がありますか?

答えて

6

文字列がJSON形式に従っているため、それを分割するのは適切な選択肢ではありません。

あなたが代わりにJsonConvertを使用することができます。

var res = JsonConvert.DeserializeObject<Dictionary<string,string>>(inputString); 
+0

うんを、同じことを言うつもりでした。これはJSON文字列、 – Delosdos

+1

JsonConvertを使用するにはJSON.NETのnugetパッケージが必要になることに言及する価値があります – rmc00

関連する問題