Разбор ответа JSON C # - PullRequest
       3

Разбор ответа JSON C #

0 голосов
/ 07 марта 2019

Я создал небольшой класс

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

Затем в моей программе я отправляю некоторые данные json и жду ответа хранилища на следующую переменную

var ResultJSON = Post(uri, values);

, при разборе я получаю

Ошибка службы: невозможно преобразовать объект типа 'System.String' в тип 'App.someclass + JsonResponse'

Ответы [ 4 ]

0 голосов
/ 07 марта 2019

Попробуйте использовать using newtonsoft.json для загрузки здесь или используйте пакет nuget.

У него есть функция, которая делает именно то, что вы хотите. Ожидается, что результат Post будет в строковом формате.

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

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

Если у вас есть вопросы, не стесняйтесь задавать.

0 голосов
/ 07 марта 2019

Попробуйте, возможно, ваш JSON-файл станет переменной результата.

var result = Convert.ToString(ResultJSON); 
0 голосов
/ 07 марта 2019

попробовать var Result = new JavaScriptSerializer().Deserialize<JsonResponse>(ResultJSON.**Response**);

мне кажется, что вы пытаетесь десериализовать объект, а не строку ответа

0 голосов
/ 07 марта 2019
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);
    }
}

Добавить пакет nuget newtonSoft.json в проект

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