C#JSON列表省略标记列表

C#JSON列表省略标记列表,c#,arrays,json,C#,Arrays,Json,我想创建一个兼容字符串,其中包含如下部分: "foo": [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]] 我不知道怎么做。这似乎是一个列表问题(已经),但当我将这样一个解决方案提供给Newtonsoft Json.NET时,我得到了: "foo": [ "bar": [1.0, 2.0], "bar": [3.0, 4.0], "bar": [5.0, 6.0]] 我只尝试了“Newtonsoft Json.NET”,但这个问题对任何其他Json库或自定义编码方法都

我想创建一个兼容字符串,其中包含如下部分:

"foo": [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]
我不知道怎么做。这似乎是一个列表问题(已经),但当我将这样一个解决方案提供给Newtonsoft Json.NET时,我得到了:

"foo": [ "bar": [1.0, 2.0], "bar": [3.0, 4.0], "bar": [5.0, 6.0]]
我只尝试了“Newtonsoft Json.NET”,但这个问题对任何其他Json库或自定义编码方法都是开放的。如何做到这一点

编辑: 这是一个序列化问题。我无法控制反序列化程序代码。

请尝试以下操作:

string str = "{ \"foo\": [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]] }";
var mytype = new { foo = new List<List<decimal>>() };
var mydeserializedtype = JsonConvert.DeserializeAnonymousType(str, mytype);
string str2 = JsonConvert.SerializeObject(mydeserializedtype);
string str=“{\'foo\”:[[1.0,2.0],[3.0,4.0],[5.0,6.0]};
var mytype=new{foo=newlist()};
var mydeserializedtype=JsonConvert.DeserializeAnonymousType(str,mytype);
字符串str2=JsonConvert.SerializeObject(mydeserializedtype);
还是更经典

class myclass
{
 public List<List<decimal>> foo { get; set; }
}
….
string str = "{ \"foo\": [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]] }";
myclass my = JsonConvert.DeserializeObject<myclass>(str);
string str2 = JsonConvert.SerializeObject(my);
class-myclass
{
公共列表foo{get;set;}
}
….
string str=“{\'foo\”:[[1.0,2.0],[3.0,4.0],[5.0,6.0]};
myclass my=JsonConvert.DeserializeObject(str);
字符串str2=JsonConvert.SerializeObject(my);
试试这个:

string str = "{ \"foo\": [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]] }";
var mytype = new { foo = new List<List<decimal>>() };
var mydeserializedtype = JsonConvert.DeserializeAnonymousType(str, mytype);
string str2 = JsonConvert.SerializeObject(mydeserializedtype);
string str=“{\'foo\”:[[1.0,2.0],[3.0,4.0],[5.0,6.0]};
var mytype=new{foo=newlist()};
var mydeserializedtype=JsonConvert.DeserializeAnonymousType(str,mytype);
字符串str2=JsonConvert.SerializeObject(mydeserializedtype);
还是更经典

class myclass
{
 public List<List<decimal>> foo { get; set; }
}
….
string str = "{ \"foo\": [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]] }";
myclass my = JsonConvert.DeserializeObject<myclass>(str);
string str2 = JsonConvert.SerializeObject(my);
class-myclass
{
公共列表foo{get;set;}
}
….
string str=“{\'foo\”:[[1.0,2.0],[3.0,4.0],[5.0,6.0]};
myclass my=JsonConvert.DeserializeObject(str);
字符串str2=JsonConvert.SerializeObject(my);

我不确定你哪里出了问题,但下面的代码工作得非常好:

var lists = new List<List<double>>
{
    new List<double> {1.0, 2.0},
    new List<double> {3.0, 4.0}
};
var test = (lists, "test");
Console.Write(JsonConvert.SerializeObject(test));

你能用一些示例代码来编辑你的文章吗?

我不确定你哪里出了问题,但下面的代码工作得非常好:

var lists = new List<List<double>>
{
    new List<double> {1.0, 2.0},
    new List<double> {3.0, 4.0}
};
var test = (lists, "test");
Console.Write(JsonConvert.SerializeObject(test));

你能用一些示例代码编辑你的文章吗?

Ehm,实际上我想序列化而不是反序列化。我想我已经说得很清楚了,不过我会编辑的。反序列化就是反序列化的确切位置。这意味着,如果找到将导致反序列化的类,您就知道要实例化哪个对象以生成正确的序列化。这个答案通过将str反序列化为my,然后将my反序列化为str2,向您展示了这个概念。错误的选择或var名称,但仍然是解决方案的清晰路径。如何序列化的唯一答案就是学习如何反序列化,这使得所有关于序列化的问题在我看来都与如何反序列化重复。嗯,实际上我想序列化而不是反序列化。我想我已经说得很清楚了,不过我会编辑的。反序列化就是反序列化的确切位置。这意味着,如果找到将导致反序列化的类,您就知道要实例化哪个对象以生成正确的序列化。这个答案通过将str反序列化为my,然后将my反序列化为str2,向您展示了这个概念。错误的选择或var名称,但仍然是解决方案的清晰路径。如何序列化的唯一答案就是学习如何反序列化,这使得所有关于序列化的问题在我看来都与如何反序列化重复。实际上这看起来非常好。给我剩下的情人节时间,我会尽快确认。实际上这看起来很不错。给我剩下的情人节时间,我会尽快确认。