Нужно создать класс JSON Serializer / Deserializer с использованием C # 2.0 - PullRequest
1 голос
/ 08 февраля 2011

Я использую c #.

Теперь я хочу создать класс "JSONHelper", который будет сериализовать и десериализовать строковые данные JSON. В моем текущем сценарии я получаю строку формата ниже от моего веб-сервиса, который возвращает тип JSON.

В моем коде C # есть метод, который вызывает метод веб-службы, который возвращает данные типа JSON в виде строки. См. Пример ниже.

string userDetails = myWebService.GetMember(username, Password, out Result);

поэтому значение userDetails равно

{"FullName":"Manoj Singh","username":"Manoj","Miles":2220,"TierStatus":"Gold","TierMiles":23230,"MilesExpiry":12223,"ExpiryDate":"31 January 2011","PersonID":232323,"AccessToken":"sfs23232s232","ActiveCardNo":"232323223"}

Теперь я хочу написать класс JSONHelper, в котором будут методы для сериализации и десериализации строкового типа JSON, и он будет возвращать значения словарного типа.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

Вы можете использовать класс JavaScriptSerializer в пространстве имен System.Web.Script.Serialization:

JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
object result = jsonSerializer.DeserializeObject(jsonString);

Предполагая, что ваша jsonString представляет объект, он должен возвращать словарь.Но вам нужно будет тщательно проверить тип, поскольку нет гарантии, что он не вернет IEnumerable, например, если вы передадите ему список json.

Еще лучше, если вы используете десериализацию строго типа:

http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-DataContractJsonSerializer.aspx

Если вам известна обратная подпись вашего веб-метода, это гораздо лучшее решение.

0 голосов
/ 08 февраля 2011

Вы смотрели на http://json.codeplex.com/?

Я использовал его и нахожу json.net очень хорошим. Не знаю, почему вы хотите написать свой собственный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...