小编Ant*_*rov的帖子

Json.NET:将嵌套数组反序列化为强类型对象

我正在编写客户端应用程序,它应该处理服务器响应.回复是JSON.我决定使用Json.NET来反序列化它们.我无法简化或修改这些响应(在服务器端).这种特定JSON响应的特殊困难是不同的对象类型在同一个数组中:散列和文件数组.所以,我想直接将这个数组反序列化为强类型对象,而不是对象数组.我认为应该有可能实现CustomCreationConverter,但我无法想象如何.

JSON:

{
    "files":
    [
        "hash string",
        [
            ["first file name", 12],
            ["second file name", 34]
        ]
    ]
}
Run Code Online (Sandbox Code Playgroud)

对象结构,我正在努力实现:

public class RootObject
{
    [JsonProperty("files")]
    public FilesContainer Container
    {
        get;
        set;
    }
}

public class FilesContainer
{
    public string Hash
    {
        get;
        set;
    }

    public File[] Files
    {
        get;
        set;
    }
}

[JsonConverter(typeof(FileJsonConverter))]
public class File
{
    public string Name
    {
        get;
        set;
    }

    public int Size
    {
        get;
        set;
    }
}

class FileJsonConverter : JsonConverter
{
    public …
Run Code Online (Sandbox Code Playgroud)

json json.net multidimensional-array deserialization

5
推荐指数
1
解决办法
7948
查看次数

在另一个线程中填充的排序列表

我正在填充线程A中的列表并在线程B中对其进行排序.

 var SortedListByDistance = Distancelist.OrderBy(o => o._Distance).Where(o => o.Distance <= _Distance).ToList();
Run Code Online (Sandbox Code Playgroud)

现在我收到以下错误:

目标数组不够长.检查destIndex和length,以及数组的下限.

在Google上做一些研究我遇到了"线程安全"主题.基本上列表被锁定(?)在另一个线程中,并触发异常.

至少这是我理解它的方式.现在问题是如何避免这个问题?

c# multithreading

1
推荐指数
1
解决办法
135
查看次数