问题描述
这是我将字典序列化为JSON的方式:
$middlewareGroups
如何将这两个结合在一起,如下所示:
Dictionary<string,string> dictFormValues = new Dictionary<string,string>();
Dictionary<string,string> hsContext = new Dictionary<string,string>();
dictFormValues.Add("firstname","Name");
dictFormValues.Add("lastname","LastName");
dictFormValues.Add("email","Email");
hsContext.Add("ipAddress","ip");
hsContext.Add("pageUrl","url");
hsContext.Add("pageName","Title");
System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
string strFormContentJSON = json.Serialize(dictFormValues); //First JSON
string strHubSpotContextJSON = json.Serialize(hsContext); //Second JSON
我尝试过类似的方法,但我不知道这样是否正确:
var data = {
"fields": [
{
"name": "firstname","value": "Name"
},{
"name": "lastname","value": "LastName"
},{
"name": "email","value": "Email"
}
],"context": {
"ipAddress": "ip","pageUri": "url","pageName": "Title"
}
}
解决方法
如果要获得确切的格式,唯一的方法是编写自定义JsonConverter。
如果使用NewtonSoft,将有两种方法可以覆盖:ReadJson(...)和WriteJson(...),一种方法用于序列化,另一种方法用于反序列化。 这样,您就可以编写自己的负责序列化和反序列化的代码。
在您的情况下,您可以将两个字典合并为一个并将其转换为Json字符串。当您反序列化字典的Json字符串时,您的自定义代码就会启动,您可以做任何想做的事。
为此检查牛顿软件文档:https://www.newtonsoft.com/json/help/html/CustomJsonConverter.htm