Десериализация строки JSON в коде позади - PullRequest
1 голос
/ 20 декабря 2011

Есть ли другой способ десериализации строки JSON, кроме использования библиотеки Newtonsoft?У меня есть строка типа

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>'}";

, если я хочу получить доступ к свойству сообщения в коде файла, как я могу это сделать?

Ответы [ 3 ]

4 голосов
/ 20 декабря 2011

Вы можете использовать DataContractJsonSerializer. Десериализовать его как класс с тем, что вы хотите извлечь, например,

[DataContract]
public class Message
{
    [DataMember]
    public string message { get; set; }
}
2 голосов
/ 20 декабря 2011

Учтите это:

Вам нужны эти необходимые пространства имен:

using System.Web.Script.Serialization;

Рассмотрите этот класс:

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

SerializableAttribute isтребуется для работы с JavaScriptSerializer

ИСПОЛЬЗОВАНИЕ

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 голосов
/ 20 декабря 2011
  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>'}");
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...