data里的内容
[{"_id":{"id":1},"value":{"Money":1000.0,"Type":2.0}},{"_id":{"id":2},"value":{"Money":1000.0,"Type":2.0}},{"_id":{"id":3},"value":{"Money":1000.0,"Type":2.0}}]
想要的结果
[{"id":1,"Money":1000.0,"Type":2.0},{"id":2,"Money":1000.0,"Type":2.0},{"id":3,"Money":1000.0,"Type":2.0}]
先定义对应的JSON对象,把原始JSON反序列化(这里使用的是Newtonsoft.Json
组件)成集合。
再使用LINQ从上一步得到的集合中查询,示例代码如下:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp1
{
public class Program
{
public static void Main(string[] args)
{
// [{"_id":{"id":1},"value":{"Money":1000.0,"Type":2.0}},{"_id":{"id":2},"value":{"Money":1000.0,"Type":2.0}},{"_id":{"id":3},"value":{"Money":1000.0,"Type":2.0}}]
// 其中1.json为以上的JSON字符串
var json = System.IO.File.ReadAllText(@"D:\1.json");
var list = JsonConvert.DeserializeObject<List<Root>>(json);
var result = list.Select(x => new Target
{
Id = x._id.id,
Money = x.Value.Money,
Type = x.Value.Type
});
Console.WriteLine(JsonConvert.SerializeObject(result));
Console.ReadKey();
}
}
public class Id
{
public int id { get; set; }
}
public class Value
{
public double Money { get; set; }
public double Type { get; set; }
}
public class Root
{
public Id _id { get; set; }
public Value Value { get; set; }
}
public class Target
{
public int Id { get; set; }
public double Money { get; set; }
public double Type { get; set; }
}
}
运行结果如下:
[{"Id":1,"Money":1000.0,"Type":2.0},{"Id":2,"Money":1000.0,"Type":2.0},{"Id":3,"Money":1000.0,"Type":2.0}]
你也可以关注[码友网]--一个专注C#/.NET/.NET Core开发的编程爱好者社区。