【发布时间】:2017-04-13 02:10:13
【问题描述】:
我有一个 JSON 字符串,并且键有大小写字符:
{"employees":[
{"FIrstName":"John", "LASTname":"Doe"},
{"FIRSTNAME":"Anna", "LaSTNaME":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
我想将其转换为 JToken 对象,并将 JToken 中的所有键都设为小写。所以在JToken内部应该是这样的:
{"employees":[
{"firstname":"John", "lastname":"Doe"},
{"firstname":"Anna", "lastname":"Smith"},
{"firstname":"Peter", "lastname":"Jones"}
]}
以前我使用JToken json = JToken.Parse(jsonString); 进行转换,但我不知道如何将键设为小写。 有什么想法吗?
我需要这样做的原因是我的JsonSchema 验证将不区分大小写。
【问题讨论】:
-
JProperty 只有名称的 getter,所以我认为您在更改它时会遇到问题。
-
是的。我在想有一些方法可以自定义解析机制。类似于具有 reviver 参数 (developer.mozilla.org/en/docs/Web/JavaScript/Reference/…) 来编辑解析的 js 解析函数。我只是不确定如何在 json.net 中自定义。
-
如果您想创建自定义 Json 转换器,请查看此内容。我不知道它是否对您当前的情况有所帮助:stackoverflow.com/questions/8030538/…
-
也许在加载 JSON 之后使用这个? Json.net rename properties.
-
@Jim 你为什么删除你的答案?虽然它对我的情况没有帮助,但它可以帮助其他用户。
标签: c# json json.net jsonschema json-deserialization