web-dev-qa-db-ja.com

JSON文字列をC#.NETのJSONオブジェクトに解析する

.NETのSOAP Webサービスによって返されるJSON文字列があります。次のとおりです。

{
 "checkrecord":
   [
     {
      "rollno":"abc2",
      "percentage":40,
      "attended":12,
      "missed":34
     }
  ],
 "Table1":[]
}

次に、この文字列をJSONオブジェクトに解析します。また、 this を読んで、このコード行を使用しています:

JObject jsonObj = JObject.Parse(json);

「json」を文字列名に置き換えることで同じことができます。また、NewtonSoft.dll以外の他のdllを参照する必要がありますか?

ところで、ここに完全なウェブサービスがあります code

26
Parth Doshi

new JavaScriptSerializer().Deserialize<object>(jsonString)を使用します

System.Web.Extensions dllが必要で、次の名前空間をインポートします。

名前空間:System.Web.Script.Serialization

詳細情報[〜#〜] msdn [〜#〜]

34
Baz1nga

この質問は非常に古いことがわかりますが、これは私が同じ問題に使用した解決策であり、他のものよりも少し少ないコードで済むようです。

@ -Maloricが this 質問への回答で述べたように:

var jo = JObject.Parse(myJsonString);

JObjectを使用するには、クラスファイルに次のものが必要です。

using Newtonsoft.Json.Linq;
11
demonicdaron

JObject以外の別の選択肢は System.Json.JsonValue Weak-Typed JSONオブジェクトです。

また、使用できるJsonValue blob = JsonValue.Parse(json);もあります。ほとんどの場合、blobはJsonObjectから派生したJsonValue型になりますが、JsonArrayになります。 blob.JsonType知る必要がある場合。

はい、あなたの質問に答えるために、jsonをJSON文字列を保持する実際の変数の名前に置き換えることができます。 ;-D

プロジェクト参照に追加する必要があるSystem.Json.dllがあります。

-ジェシー

5
Jesse Chisholm

Newtonsoft.dllを使用していると述べたので、その機能を使用してJSON文字列をオブジェクトに変換できます。

MyClass myClass = JsonConvert.DeserializeObject<MyClass>(your_json_string);

[Serializable]
public class MyClass
{
    public string myVar {get; set;}
    etc.
}
3
azakgaim