Json.NET 定义了一个JConstructor
类型。
这令人困惑,因为(据我所知)构造函数不是 JSON 的一部分。我仔细检查了JSON 规范并浏览了 json.org,但找不到任何东西。在网络上的任何地方似乎也没有太多关于这种类型的文档。
因为 Json.NET 被如此广泛地使用(它甚至由微软共同签名),我认为在对象模型中包含这种表示必须有一些合理的动机。问题是,我对确定动机的任何尝试都只是猜测。
我测试了类型及其序列化,明显的行为是只包装 JavaScript 代码new constructorName(...)
,例如:
new JConstructor("ctorExample",
new JValue("value"),
new JObject(
new JProperty("prop1", new JValue(1)),
new JProperty("prop2", new JValue(2)))
)
.ToString()
输出
new ctorExample(
"value",
{
"prop1": 1,
"prop2": 2
}
)
那么,JConstructor
要表示的类型是什么,它为什么存在呢?