无法反序列化当前JSON对象以及json

Yaser否
{
    "token": "d10e",
    "@version": "1",
    "key": "30a8-e2dc2c6c7a5e",
    "result": [
        ["name :Customer10", "description :Hesco"],
        ["name :Customer16", "description :IoTLab"],
        ["name :Customer32", "description :Abdevand"],
        ["name :Customer20", "description :Jahad Daneshgahi KNU"],
        ["name :Customer8", "description :Babinab"],
        ["name :Customer4", "description :ISA"],
        ["name :ParsIoT", "description :customer created on 2018-01-16T05:45:05.939 (BSS Time)"],
        ["name :Customer18", "description :Customer18"]
    ]
}

我如何反序列化为json数组?

C#返回错误,无法反序列化此json !!!

var resp = JsonConvert.DeserializeObject<List<Organization>>(response);

这是组织类,如何列出结果对象

public class Organization
{
    [JsonProperty("token")]
    public string token { get; set; }

    [JsonProperty("@version")]
    public string version { get; set; }

    [JsonProperty("@timestamp")]
    public string timestamp { get; set; }

    [JsonProperty("type")]
    public string type { get; set; }

    [JsonProperty("result")]
    public Result[] result { get; set; }
}

这是Result类:

public class Result
{
    [JsonProperty("name")]
    public string name { get; set; }

    [JsonProperty("description")]
    public string description { get; set; }
}
乔恩·斯基特

您有两个问题:

  • 你试图反序列化的List<Organization>,但你的JSON仅代表一个单一的 Organization
  • result属性是一个由字符串数组组成的数组-JSON不包含任何“名称”或“描述”属性,仅包含类似于“名称:Customer20”的值等。

下面是一个完整的例子的工作:

using System;
using System.IO;
using Newtonsoft.Json;

public class Organization
{
    [JsonProperty("token")]
    public string Token { get; set; }

    [JsonProperty("@version")]
    public string Version { get; set; }

    [JsonProperty("key")]
    public string Key { get; set; }

    [JsonProperty("result")]
    public string[][] Results { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        string json = File.ReadAllText("test.json");
        var org = JsonConvert.DeserializeObject<Organization>(json);
        Console.WriteLine($"Token: {org.Token}");
        Console.WriteLine($"Version: {org.Version}");
        Console.WriteLine($"Key: {org.Key}");
        Console.WriteLine("Result entries:");
        foreach (string[] entry in org.Results)
        {
            Console.WriteLine(string.Join(", ", entry));
        }
    }
}

但是,现在您需要分别解析result数组中的每个条目(如果您可以修改JSON的格式,则每个条目都是一个对象会更好,但是上面的代码按您介绍的方式处理JSON。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法反序列化当前的 json 对象

无法反序列化当前JSON对象-空列表

无法反序列化JSON对象

反序列化 Json 出现错误“无法反序列化当前的 JSON 数组”

Json 反序列化 | 无法反序列化当前的 Json

无法反序列化当前JSON对象无法反序列化具有组列的当前JSON对象

XERO API - 用于发布数据的 JSON 无效,无法反序列化当前 JSON 对象

无法反序列化当前 JSON 对象,因为该类型需要 JSON 数组

无法将当前JSON对象反序列化为type

“无法将当前JSON对象反序列化为类型

无法反序列化当前的 JSON 数组 c#

C#-无法反序列化当前JSON数组

C#:“无法反序列化当前JSON数组”

无法反序列化当前JSON对象(例如{“ name”:“ value”})为List的Collection类型

CosmosDB每个项目的ttl设置引发异常:无法反序列化当前JSON对象

无法从 C# 中的 IMGUR API 反序列化当前的 JSON 对象错误

C# 无法反序列化当前的 JSON 对象 (Newtonsoft)

如何修复错误:无法反序列化当前 JSON 对象

C# JsonSerializationException 无法反序列化当前 JSON 对象

VB.NET反序列化JSON-无法将当前JSON对象反序列化为类型.Customer []',因为该类型需要JSON数组

无法从Json反序列化获取对象数据

无法使用字典反序列化json对象

Json 到 csharp 类无法反序列化对象

无法将当前JSON对象(例如{“ name”:“ value”})反序列化为类型需要JSON数组(例如[1,2,3])才能正确反序列化

JSON反序列化对象-.NET

反序列化复杂的JSON对象

Json反序列化对象错误

反序列化复杂的Json对象

如何反序列化Json对象?