回答:
型付きオブジェクトが必要ない、または必要ない場合は、以下を試してください。
using Newtonsoft.Json;
// ...
dynamic json = JsonConvert.DeserializeObject(str);
または、型指定されたオブジェクトを試す:
Foo json = JsonConvert.DeserializeObject<Foo>(str)
これは機能します
string str = "{ 'context_name': { 'lower_bound': 'value', 'pper_bound': 'value', 'values': [ 'value1', 'valueN' ] } }";
JavaScriptSerializer j = new JavaScriptSerializer();
object a = j.Deserialize(str, typeof(object));
別の目標を達成する興味深い方法があります。それは、jsonを強く型付けしたクラスをベースに、非常に強力なツールを使用して、tradedoubler jsonの結果をクラスに変換するために初めて使用した非常に強力なツールです
単純なツールです。jsonソースペーストをコピーすると、数秒で強く型付けされたクラスjson指向のクラスになります。このようにして、これらのクラスを使用します。これらのクラスは、より強力で、簡単に使用できます。
お役に立てれば幸いです
次のように試すことができます:
string output = JsonConvert.SerializeObject(jsonStr);
これは、JObjectの場合は機能しません。これは、単純なjson形式のデータで機能します。以下のjson形式のデータをタイプでデシリアライズしようとしましたが、応答がありませんでした。
このJsonのために
{
"Customer": {
"id": "Shell",
"Installations": [
{
"id": "Shell.Bangalore",
"Stations": [
{
"id": "Shell.Bangalore.BTM",
"Pumps": [
{
"id": "Shell.Bangalore.BTM.pump1"
},
{
"id": "Shell.Bangalore.BTM.pump2"
},
{
"id": "Shell.Bangalore.BTM.pump3"
}
]
},
{
"id": "Shell.Bangalore.Madiwala",
"Pumps": [
{
"id": "Shell.Bangalore.Madiwala.pump4"
},
{
"id": "Shell.Bangalore.Madiwala.pump5"
}
]
}
]
}
]
}
}
JSon文字列に一重引用符の代わりに ""二重引用符 'があり、次の行のインジケータとして\ nがある場合、それを削除する必要があります。これは、次に示すような適切なJSon文字列ではないためです。
SomeClass dna = new SomeClass ();
string response = wc.DownloadString(url);
string strRemSlash = response.Replace("\"", "\'");
string strRemNline = strRemSlash.Replace("\n", " ");
// Time to desrialize it to convert it into an object class.
dna = JsonConvert.DeserializeObject<SomeClass>(@strRemNline);