簡體   English   中英

組合2個序列化的json字符串

[英]Combine 2 Serialized json string

這是我將字典序列化為 JSON 的方式:

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"
  }
}

我試過這樣的事情,但我不知道這是否正確:

string strPostData = "";

strPostData = json.Serialize(new { OneDetails = strFormContentJSON, TwoDetails = strHubSpotContextJSON });

如果您想獲得該確切格式,唯一的方法是編寫自定義 JsonConverter。

如果您使用 NewtonSoft,您將有兩種方法可以覆蓋:ReadJson(...) 和 WriteJson(...),一種用於序列化,另一種用於反序列化。 這樣您就可以編寫自己的代碼來負責序列化和反序列化。

在您的情況下,您可以將兩個字典合並為一個並將其轉換為 Json 字符串。 當您反序列化該字典 Json 字符串時,您的自定義代碼就會啟動,您可以隨心所欲。

檢查 NewtonSoft 文檔: https ://www.newtonsoft.com/json/help/html/CustomJsonConverter.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM