Newtonsoft.Json.Linq 怎么倒序复制给对象?

中文命名法 2018-03-18 04:50:48
{"result":"true","asks":[["0.00007500",15743.399414],["0.00007400",16892.027344],["0.00007300",7624.195312],["0.00007200",19920.6621],["0.00007000",17117.956],["0.00006500",55837.6368],["0.00006300",21395.39031747],["0.00006100",16137.6368],["0.00006000",31529.1103],["0.00005900",13504.2368],["0.00005700",2000],["0.00005600",23567.734],["0.00005500",90492.288],["0.00005400",33969.99092594],["0.00005100",9015.9055118],["0.00005000",1345.1806],["0.00004900",8929.42980038]]}
每次得到的asks数量是不同的,
我要把它最后一个["0.00004900",8929.42980038]赋值给委卖[0,0]和委卖[0,1]
最后第二个["0.00005000",1345.1806]赋值给委卖[1,0]和委卖[1,1]
最后第三个["0.00005100",9015.9055118]赋值给委卖[3,0]和委卖[3,1]
for(byte i=0;i<10;i++)
{
委卖[i,0]=json["asks"]最后一个的数组的第1个值;
委卖[i,1]=json["asks"]最后一个的数组的第2个值;
}
...全文
311 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
中文命名法 2018-03-19
  • 打赏
  • 举报
回复
引用 8 楼 hanjun0612 的回复:
使用Reverse来反转也可以。使用for循环,从尾部读取也可以。这只是下标不一样
这个我也想过,但是IDE认为Json["asks"]是个JToken,其实是个数组,所以我怎么才能得到它的成员个数呢?
中文命名法 2018-03-19
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
Json["asks"] = Json["asks"].Reverse(); //报错 这是必然的,因为类型不同Json["asks"] = Json["asks"].Reverse().ToArray();
回复之前我试过: Json["asks"] = Json["asks"].Reverse().ToArray(); 无法将类型“Newtonsoft.Json.Linq.JToken[]”隐式转换为“Newtonsoft.Json.Linq.JToken” 无法将键的数组转成键,是这意思吧?是不是还要一层转换?
正怒月神 2018-03-19
  • 打赏
  • 举报
回复
引用 10 楼 shawb 的回复:
引用 8 楼 hanjun0612 的回复:
使用Reverse来反转也可以。使用for循环,从尾部读取也可以。这只是下标不一样
这个我也想过,但是IDE认为Json["asks"]是个JToken,其实是个数组,所以我怎么才能得到它的成员个数呢?
var a = JObject.Parse(text)["asks"].ToArray();
正怒月神 2018-03-19
  • 打赏
  • 举报
回复
使用Reverse来反转也可以。 使用for循环,从尾部读取也可以。这只是下标不一样
中文命名法 2018-03-19
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
static void Main(string[] args)
{
    var Json = JObject.Parse(File.ReadAllText("d20.txt", Encoding.Default));
    Json["asks"] = Json["asks"].Reverse();    //报错
}
抓到我想要的东西了,就是这个Reverse(),我能否把Json变量中的asks数组倒叙后不产生新的变量值,而直接写入原来的Json["asks"]里面去?
xuzuning 2018-03-19
  • 打赏
  • 举报
回复
Json["asks"] = Json["asks"].Reverse(); //报错 这是必然的,因为类型不同 Json["asks"] = Json["asks"].Reverse().ToArray();
desperaso 2018-03-18
  • 打赏
  • 举报
回复
Linq用法 http://www.cnblogs.com/liqingwen/p/5832322.html 取值、排序什么的都可以
desperaso 2018-03-18
  • 打赏
  • 举报
回复
反序列化后

using System.Linq;
......
......
var Customers = from cust in customers
               where cust.XXX = "XXXXX"
                orderby cust.Name descending 
                select cust;
xuzuning 2018-03-18
  • 打赏
  • 举报
回复
        static void Main(string[] args)
{
var text = File.ReadAllText("d20.txt", Encoding.Default); //假定你的 json 在 d20.txt 中
var a = JObject.Parse(text)["asks"];
foreach (var x in a.Reverse())
{
Console.WriteLine("{0} {1}", x[0], x[1]);
}
}
中文命名法 2018-03-18
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
反序列化后排序
能一句话把asks转成一个Double[未知数,2]数组吗? 其实不想用排序是因为我只要顺序的从末尾一个接一个取值就行了,它的顺序并不乱。
xuzuning 2018-03-18
  • 打赏
  • 举报
回复
反序列化后排序

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧