首页 > 解决方案 > Asp.Net Core 2.1 返回的带有 Json 的 C# SimpleJson

问题描述

我有一个从名为 DataSet 的类返回的 Asp.Net Core 2.1 API。我该怎么做才能让 SimpleJson 解码 json 数据。谢谢你。

var response = restClient.Execute(request);
var ret = response.Content;
DataSet mydata = SimpleJson.SimpleJson.Deserialize<DataSet>(ret);

mydata 始终为空。

// This is json data returned by server    
    {"prime":"Af//////////////////////////////////////////////////////////////////////////////////////",
        "a":"Af/////////////////////////////////////////////////////////////////////////////////////8",
        "b":"AFGVPrlhjhyaH5KaIaC2hUDuotpyW5mzFfO4tImRjvEJ4VYZOVHsfpN7FlLAvTuxvwc1c9+IPSw08e9FH9RrUD8A"}

public class DataSet
{
    public byte[] prime {get;set;}
    public byte[] a {get;set;}
    public byte[] b {get;set;}
}

标签: c#simplejson

解决方案


使用 Newtonsoft JSON,您可以非常轻松地执行以下操作:

using System;
using Newtonsoft.Json;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Hello World");
        var jsonString = @"{'prime':'Af//////////////////////////////////////////////////////////////////////////////////////',
        'a':'Af/////////////////////////////////////////////////////////////////////////////////////8',
        'b':'AFGVPrlhjhyaH5KaIaC2hUDuotpyW5mzFfO4tImRjvEJ4VYZOVHsfpN7FlLAvTuxvwc1c9+IPSw08e9FH9RrUD8A'}";

        var dataSet = JsonConvert.DeserializeObject<DataSet>(jsonString);

        Console.WriteLine(System.Text.Encoding.UTF8.GetString(dataSet.prime));
        Console.WriteLine(System.Text.Encoding.UTF8.GetString(dataSet.a));
        Console.WriteLine(System.Text.Encoding.UTF8.GetString(dataSet.b));
    }
}

public class DataSet
{
    public byte[] prime {get;set;}
    public byte[] a {get;set;}
    public byte[] b {get;set;}
}

不确定您要编码什么,但我猜它是 UTF-8 中的东西?

https://dotnetfiddle.net/g4pBWc


推荐阅读