我正在编写客户端应用程序,它应该处理服务器响应.回复是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) 我正在填充线程A中的列表并在线程B中对其进行排序.
var SortedListByDistance = Distancelist.OrderBy(o => o._Distance).Where(o => o.Distance <= _Distance).ToList();
Run Code Online (Sandbox Code Playgroud)
现在我收到以下错误:
目标数组不够长.检查destIndex和length,以及数组的下限.
在Google上做一些研究我遇到了"线程安全"主题.基本上列表被锁定(?)在另一个线程中,并触发异常.
至少这是我理解它的方式.现在问题是如何避免这个问题?