【问题标题】:Creating a specific JSON format创建特定的 JSON 格式
【发布时间】:2013-09-07 03:32:13
【问题描述】:

我正在尝试创建一个 JSON 请求以发送到电子邮件服务 GetResponse 以将联系人添加到邮件活动。

我想要实现的格式是add_contact

[
    "API_KEY",
    {
        "campaign"  : "CAMPAIGN_ID",
        "action"    : "action_value",
        "name"      : "name_value",
        "email"     : "email_value",
        "cycle_day" : cycle_day_value,
        "ip"        : "ip_value",
        "customs"   : [
            {
                "name"      : "name_1_value",
                "content"   : "content_1_value"
            },
            {
                "name"      : "name_2_value",
                "content"   : "content_2_value"
            }
        ]
    }
]

按照How to create JSON string in C# 我构建了这个设置

private class AddContactRequest
{
    public string campaign { get; set; }
    public string action { get; set; }
    public string name { get; set; }
    public string email { get; set; }
    public int cycle_day { get; set; }
    public string ip { get; set; }
}

然后这样填写

AddContactRequest add = new AddContactRequest();
add.campaign = campaignID;
add.action = action
add.name = contact_name;
add.email = email;
add.cycle_day = cycle_day;
add.ip = ip_value;

string json = new JavaScriptSerializer().Serialize(add);

这里 json 符合预期

{"campaign":"my_test_campaign","action":"standard","name":"Test Name","email":"test@example.com","cycle_day":0,"ip":"10.1.0.5"}

我不知道如何正确地将API_KEY字符串添加到它的前面。

如何更改它以将API_KEY 添加到它的前面而不附加属性名称,最好使用JavaScriptSerializer()

【问题讨论】:

    标签: c# json


    【解决方案1】:

    您需要做的是创建一个object 类型的集合,并将"API_KEY" 作为第一个条目传递,您的add 对象作为第二个条目传递。

    AddContactRequest add = new AddContactRequest();
    add.campaign = campaignID;
    add.action = action
    add.name = contact_name;
    add.email = email;
    add.cycle_day = cycle_day;
    add.ip = ip_value;
    
    List<object> SerializedThingy = new List<object>
    {
       "API_KEY",
       add
    };
    
    string json = new JavaScriptSerializer().Serialize(SerializedThingy);
    

    【讨论】:

    【解决方案2】:

    从文档看来,他们正在以专有方式包装 JSON 对象。 JSON 需要以“{”开头,而不是“[”。我会尝试这样的事情:

    string json = new JavaScriptSerializer().Serialize(SerializedThingy);
    string req = "[ \"API_KEY\", " + json + " ]";
    

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多