#c# #wcf
#c# #wcf
Вопрос:
Я отредактировал свой вопрос :
Как я могу десериализовать строку JSON, показано ниже :
"{"acctId": "Test10001","amount": 200,"currency": "USD","Code": "Test","serialNo": "1234566789asdsad0"}"
Пожалуйста, дайте предложение, как я могу получить данные, используя этот метод или любой другой рекомендуемый метод.
Комментарии:
1. предоставьте полную функцию
2.
res
является строкой JSON. Поэтому использованиеHttpUtility.ParseQueryString(res);
здесь неверно. Десериализуйтеres
с помощью сериализатора JSON, напримерJSON.NET
3. если это другой способ десериализации без использования другой библиотеки?
Ответ №1:
Предлагаю вам использовать StreamWriter
, как показано ниже. Используйте эту функцию и передайте свою строку и верните поток, который предоставит вам желаемое содержимое JSON
public static Stream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
Ответ №2:
Полезная нагрузка вашего запроса POST, похоже, находится в формате JSON, поэтому для ее анализа следует использовать библиотеку синтаксического анализа JSON, такую какJson.NET. Тогда вы бы написали что-то вроде:
JsonConvert.DeserializeObject<YourRequestObject>(res)
Ответ №3:
Я думаю, что приведенный ниже код должен служить вашей цели:
public class DeserializedData
{
public string acctId { get; set; }
public string amount { get; set; }
public string currency { get; set; }
public string Code { get; set; }
public string serialNo { get; set; }
}
StreamReader reader = new StreamReader(streamdata);
string res = reader.ReadToEnd();
Используйте сторонние библиотеки DLL, такие как Json.NET или Restsharp:
1.) Используя Json.Сеть Json.NET
var result = JsonConvert.DeserializeObject<DeserializedData>(res);
2.) Используя Restsharp Restsharp
var jsonDeserializer = new RestSharp.Deserializers.JsonDeserializer();
var response = jsonDeserializer.Deserialize<DeserializedData>(res);
Дайте мне знать, если у вас это не сработает.
Комментарии:
1. Спасибо, это работает. Вы экономите мое время, еще раз спасибо =)
2. Не волнуйся, приятель!!
3. @saket ваша ошибка исправлена?
Ответ №4:
вы можете прочитать строку Json следующим образом
dynamic stuff = JObject.Parse(res.ToString());
string acctId= stuff.acctId;
Но строка ответа, которую вы анализируете, должна быть отформатирована в формате json.