简体   繁体   中英

parse json response c#

I have created small class

class JsonResponse
{
    public string Response { get; set; }
}

Then in my program I send some json data and wait store reply to the following variable

var ResultJSON = Post(uri, values);

while parsing I get

Service Error: Cannot convert object of type 'System.String' to type 'App.someclass+JsonResponse'

using Newtonsoft.Json;

class JsonResponse
{
    public string Response { get; set; }
}

class Utility
{
    public JsonResponse JsonDeserialisation(string response)
    {
        TextReader textReader = new StreamReader(response);
        JsonTextReader jsonReader = new JsonTextReader(textReader);
        return JsonSerializer.CreateDefault().Deserialize<JsonResponse>(jsonReader);
    }
}
class Main
{
    static void Program()
    {
        var ResultJSON = "Json String received from post";//Post(uri, values);
        var deserialisedJson = Utility.JsonDeserialisation(ResultJSON);
    }
}

Add newtonSoft.json nuget package to project

试试这个,可能会给你的JSON文件添加结果变量。

var result = Convert.ToString(ResultJSON); 

try var Result = new JavaScriptSerializer().Deserialize<JsonResponse>(ResultJSON.**Response**);

looks to me that you are trying to deserialize from an object rather than the string response

Try using using newtonsoft.json downloadable here or use the nuget package.

It has a function that does exactly what you want. Expecting the result of the Post is in string format of course.

var result = JsonConvert.DeserializeObject<JsonResponse>(ResultJSON);

Your JsonResponse class must look exacly the same as the json your getting. So make sure if you get more data in the json that you want to save in the class the names are the same.

If you have anymore questions feel free to ask.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM