2016-10-20 2 views
0

Я отредактировал мой вопрос:WCF Deserialize JSON Строка

Как я могу десериализацию строка JSON показывает ниже:

"{\"acctId\": \"Test10001\",\"amount\": 200,\"currency\": \"USD\",\"Code\": \"Test\",\"serialNo\": \"1234566789asdsad0\"}" 

Пожалуйста, дайте предложения, как я могу получить данные с помощью этого метода или любых других рекомендованный способ.

+1

выставить полную функцию – Aravind

+1

'res' является строкой JSON. Поэтому использование 'HttpUtility.ParseQueryString (res);' здесь неверно. Deserialize 'res', используя JSON-сериализатор, например' JSON.NET' – AEonAX

+0

, если этот другой способ десериализации без использования другой библиотеки? –

ответ

0

Я думаю, что ниже код должен служить вашей цели:

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.NET Json.NET

var result = JsonConvert.DeserializeObject<DeserializedData>(res); 

2.) Использование Restsharp Restsharp

var jsonDeserializer = new RestSharp.Deserializers.JsonDeserializer(); 
var response = jsonDeserializer.Deserialize<DeserializedData>(res); 

Сообщите мне, если он не работает для вас.

+0

спасибо, thats работа. Вы экономите свое время, спасибо снова =) –

+0

Не беспокойтесь, товарищ !! – Saket

+0

@saket исправлена ​​ошибка? – Aravind

2

Предлагая вам использовать StreamWriter, как указано ниже. Используйте эту функцию и передать вашу строку и возвращает в поток, который даст вам желаемый JSON Content

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; 
} 
1

Полезная нагрузка Вашего запроса на POST, как представляется, в формате JSON, поэтому вы должны использовать синтаксический анализ библиотеки JSON для проанализируйте его, например Json.NET. Тогда можно было бы написать что-то вроде:

JsonConvert.DeserializeObject<YourRequestObject>(res) 
0

вы можете прочитать строку JSON, как этот

dynamic stuff = JObject.Parse(res.ToString()); 

     string acctId= stuff.acctId; 

Но строка ответа вы разборе должны быть отформатированы в формате JSON.

Смежные вопросы