我有一个接受键和值的方法。两个变量都可以具有动态内容。
key=>是一个动态字符串,可以是类似"LastSentDate"的所有内容
value=>是一个对象,可以是类似于"2014-10-10"的所有对象
由于key是一个动态值,如"LastSentDate"或传递给方法的任何键,因此我希望json属性是键字符串的值,而不是键本身。。。
public void SetRowVariable(string key, object value)
{
var obj = new { key = value }; // key property is literally taken maybe anonym object is not a good idea?
string jsonString = JsonConvert.SerializeObject(obj);
// jsonString should have that output => "{ "LastSentDate": "2014-10-10" }"
}
我必须如何序列化我获得所需输出的obj?
"key"属性也必须可能包含特殊字符,如"!"§$%&()=?"`
遗憾的是,我正在使用.NET 3.5。
您可以使用JObject
(在Newtonsoft.Json.Linq中):
var obj = new JObject();
obj[key] = JToken.FromObject(value);
string jsonString = obj.ToString();
您可以尝试使用Dictionary<string, object>
:
public void SetRowVariable(string key, object value)
{
var obj = new Dictionary<string, object>();
obj[key] = value; // Of course you can put whatever crap you want here as long as your keys are unique
string jsonString = JsonConvert.SerializeObject(obj);
...
}