C# 是否将属性动态添加到json字符串?
我需要动态地向json字符串添加一些属性。以下是我正在使用的代码:C# 是否将属性动态添加到json字符串?,c#,.net,json.net,C#,.net,Json.net,我需要动态地向json字符串添加一些属性。以下是我正在使用的代码: // set as empty json object RequestMessage = "{}"; dynamic d = JsonConvert.DeserializeObject(RequestMessage); d.Request = JsonConvert.SerializeObject(request); d.RequestOptions = JsonConvert.SerializeObject(requestOp
// set as empty json object
RequestMessage = "{}";
dynamic d = JsonConvert.DeserializeObject(RequestMessage);
d.Request = JsonConvert.SerializeObject(request);
d.RequestOptions = JsonConvert.SerializeObject(requestOptions);
RequestMessage = JsonConvert.SerializeObject(d);
这可以将Request和RequestOptions添加到d,然后将其序列化回json字符串
如果我知道属性的名称就可以了,在本例中,它们是Request和RequestOptions
问题是:如果属性名是一个变量,有没有办法做到这一点?例如,类似于:
private string GetJson(string name, object obj)
{
// name is "Request"
// object is request
......
return RequestMessage;
}
可能吗*我使用的是.net+newton json
谢谢当然,您可以向动态对象动态添加属性:
var RequestMessage=“{}”;
动态d=JsonConvert.DeserializeObject(RequestMessage);
d、 Request=JsonConvert.SerializeObject(新的{A=42});
d、 RequestOptions=JsonConvert.SerializeObject(新的{B=22});
var name=“SomeMore”;
d[名称]=11;
RequestMessage=JsonConvert.Serialized对象;
↓
为什么要使用
dynamic
?只需使用字典
,不要使用动态
。Json.NET用于Json对象的具体类型是JObject
,因此请使用它。见:。上面提到的字典也可以使用。其目的是动态地向对象添加属性(对象从json字符串转换),然后将其转换回json字符串。您可以在运行时向字典
或作业对象
添加项。谢谢,dbc。如果您添加它作为答案,我将接受它。为什么使用dynamic
而不是Dictionary
或JObject
?在这种情况下d
实际上是JObject
{"Request":"{\"A\":42}","RequestOptions":"{\"B\":22}","SomeMore":11}