Json属性的双标签
本文关键字:标签 属性 Json | 更新日期: 2023-09-27 17:53:18
我需要将Json对象传递给API,但是API要求Json属性具有排序的双标签,例如:
{
"name:id":"1234"
}
但是,使用Newtonsoft.Json。Linq,我没法精确地设置标签的格式。这是我到目前为止所尝试的(抛出一个错误)
dynamic json= new JObject();
json.name.id = "1234";
做json.id = "1234";
工作很好。我也试过
json.name = new JProperty("id", "1234");
也会抛出错误。我还尝试将json文件硬编码为单个字符串并将其转换为jobobject,这也抛出了一个错误。我想做的是可能的还是我错过了什么?是否有其他Json包可以支持我的操作?
使用JObject的字符串索引器表示法
dynamic json = new JObject();
json["name.id"] = "1234";
由于json本质上是作为键/值对构建的,因此使用字符串索引器可以让您克服非典型属性名称。
有多种方法可以做到这一点。
您可以使用JsonProperty
属性并将属性名称指定为name:id
,如:
class MyClass
{
[JsonProperty("name:id")]
public string Name_Id { get; set; }
}
然后你可以写:
MyClass obj = new MyClass();
obj.Name_Id = "1234";
var strJson = JsonConvert.SerializeObject(obj);
,你会得到回报:
{"name:id":"1234"}