web-dev-qa-db-ja.com

JSON文字列をJSONオブジェクトに変換するc#

この文字列をデータベースに格納します。

str = "{ "context_name": { "lower_bound": "value", "upper_bound": "value", "values": [ "value1", "valueN" ] } }"

この文字列はすでにJSON形式ですが、JObjectまたはJSONオブジェクトに変換したいです。

JObject json = new JObject();

私はjson = (JObject)str;キャストを試しましたが、うまくいきませんでした。

117
caj

JObjectはこのためにメソッドParseを定義します。

JObject json = JObject.Parse(str);

Json.NET のドキュメント を参照してください。

228
Andrei

型指定されたオブジェクトが欲しくないか必要ないなら、試してください:

using Newtonsoft.Json;
// ...   
dynamic json  = JsonConvert.DeserializeObject(str);

または型付きオブジェクトを試す:

Foo json  = JsonConvert.DeserializeObject<Foo>(str)
39
Kieran

この作品

    string str = "{ 'context_name': { 'lower_bound': 'value', 'pper_bound': 'value', 'values': [ 'value1', 'valueN' ] } }";
    JavaScriptSerializer j = new JavaScriptSerializer();
    object a = j.Deserialize(str, typeof(object));
18
Karthik Ganesan

もう1つの目標を達成するための興味深い方法があります。それは、私が数日前に取引されたjsonの結果をクラスに変換するために初めて使用した非常に強力なツールでjsonに強く型付けされたクラスベースを持つことです

簡単なツールです:あなたのjsonソースペーストをコピーすると、数秒で 強く型付けされたクラスjson指向 になるでしょう。このようにして、あなたはこれらのクラスを使うでしょう。

お役に立てば幸いです。

7
makemoney2010

あなたは次のように試すことができます:

string output = JsonConvert.SerializeObject(jsonStr);
2
B.Mohamed Riyas

これは私にとってJsonConvertを使用して動作します

var result = JsonConvert.DeserializeObject<Class>(responseString);
0
HamidKhan

これは単純なjson形式のデータに対して機能するJObjectの場合には機能しません。以下の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"
              }
            ]
          }
        ]
      }
    ]
  }
}
0
Rahul Shukla