c# - 如何从类型创建 JPath
问题描述
什么是从给定类型创建 JPath 的最佳方法。
假设我有以下课程:
class ClassA
{
public ClassB ClassB { get; set; }
}
class ClassB
{
public string Name { get; set; }
}
我想要所有道具的JPath,ClassA
例如ClassA.ClassB.Name
Json.Net 中有内置的方法吗?
谢谢!
解决方案
您可以只使用 JObject 的 SelectToken ,如下所示:
static void Main(string[] args)
{
ClassA A = new ClassA()
{
ClassB = new ClassB()
{
Name = "NameClassB"
}
};
string json = JsonConvert.SerializeObject(A);
var obj = JObject.Parse(json);
var name = obj.SelectToken("$.ClassB.Name");
System.Console.WriteLine(name);
// output --> NameClassB
}
}
class ClassA
{
public ClassB ClassB { get; set; }
}
class ClassB
{
public string Name { get; set; }
}
或使用 Newtonsoft.Json.Linq
dynamic stuff = JObject.Parse("{ 'Name': 'Jon Smith', 'Address': { 'City': 'New York', 'State': 'NY' }, 'Age': 42 }");
string name = stuff.Name;
string address = stuff.Address.City;
推荐阅读
- java - 在 java 中实现 DestinationAvailabilityListener 时出错
- vba - 基于查找的 VBA 制表
- instagram - 使用 API 获取粉丝数超过 100 万的 Instagram 用户
- java - 如何在 Android 中检查字符串条件
- c++ - if (var=x) {var=y} 原子编码的好方法?
- mysql - MYSQL 从两个表中选择匹配的值
- sql - 我怎样才能找到最大值(RowID)
- javascript - 如何在 ReactJs 中格式化 JSON 结构
- video - 在视频 #2 中重新缩放和重新定位 FFMPEG 中的图像
- python - Python Selenium webdriver:如果浏览器最小化,则不会向下滚动页面