2011-12-20 10 views
1

Newtonsoftライブラリを使用するのではなく、JSON文字列を逆シリアル化する方法はありますか?コード内のJSON文字列を逆シリアル化する

string json = "{status : '1',message : '<tr><th>Date</th><th>Description</th><th>Reference</th> <th>Code</th><th>Dept Code</th><th>Debit</th><th>Credit</th></tr>'}"; 

コードビハインドファイルのメッセージプロパティにアクセスするにはどうすればいいですか?

答えて

0
  1. クラス作成

    public class TestM 
        { 
         public string status { get; set; } 
         public string message { get; set; } 
        } 
    
  2. あなたのコードでこれを使用したより

    JavaScriptSerializer ser = new JavaScriptSerializer(); 
    TestM t = ser.Deserialize<TestM>("{status : '1',message : '<tr><th>Date</th><th>Description</th><th>Reference</th> <th>Code</th><th>Dept Code</th><th>Debit</th><th>Credit</th></tr>'}"); 
    
+0

返信いただきありがとうございます。匿名のオブジェクトを使用することは可能です。 – Aroor

+0

var TestM = new {status = string.Empty、message = string.Empty}; – Aroor

+0

匿名のオブジェクト..私は確信していません – dotnetstep

4

DataContractJsonSerializerを使用できます。抽出したいものをクラスとしてデシリアライズします(例:

[DataContract] 
public class Message 
{ 
    [DataMember] 
    public string message { get; set; } 
} 
+0

DataContractJsonSerializerがSystem.Runtime.Serialization.Jsonであるあなたの即答 – Aroor

+0

のための感謝:?これを参照してください。 DataContractAttributeとDataMemberAttributeはSystem.Runtime.Serializationにあります。 Messageクラスは、選択した名前空間に入れることができます。 –

2

はこのことを考えてみましょう:

あなたはこの必要な名前空間を必要とする:

using System.Web.Script.Serialization; 

は、このクラスを考えてみましょう:

[Serializable] 
public class Foo 
{ 
    public int status { get; set; } 
    public string message { get; set; } 
} 

SerializableAttributeJavaScriptSerializer

USAGE

JavaScriptSerializer serializer = new JavaScriptSerializer(); 

// Deserialize 

Foo foo = serializer.Deserialize<Foo>(json); 

//now you have access to... 

var status = foo.status; 
var message = foo.message; 

で動作するように要求されまたJavaScriptSerializerをデシリアライズしますDictionary。私はそのために使用する必要がない名前空間

Dictionary<string, object> ds = serializer .Deserialize<Dictionary<string, object>>(json); 

var status = ds["status"].ToString(); 
var message = ds["message"].ToString(); 
+0

これを呼び出す必要があるのはどの名前空間ですか。返信ありがとう – Aroor

+0

答えに名前空間を追加しました。 –

+0

を確認してください。メッセージプロパティとしてテーブルデータを渡すときにエラーが発生しました。 無効なオブジェクトが渡されましたが、 ':'または '}'が必要です。(37):{状態:1、メッセージ: '<テーブルID =' excelDoc '>日説明参照公称コード部門コードデビットクレジット​​11分の21/2011​​11月の減価償却​​発JNL​​​​​​​​​​​​1150​​100 0.00 50.00「} – Aroor

関連する問題