Unity3D,创建一个Json帖子请求

时间:2016-11-26 06:33:47

标签: json unity3d pushwoosh

我必须以这种格式在Json中创建一个帖子请求。

{
"request": {
    "application": "APPLICATION_CODE",
    "auth": "API_ACCESS_TOKEN",
    "notifications": [{
        "send_date": "now", // YYYY-MM-DD HH:mm  OR 'now'
        "ignore_user_timezone": true, // or false
        "content": "Hello world!"
    }]
}
}

这是我第一次序列化Json String并且我不知道如何做到这一点,我尝试了一些不同的东西但却无法获得确切的格式。

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:1)

首先,你不能对json文件发表评论,但我想它现在就在那里。

然后你可以将你的json粘贴到这样的转换器中http://json2csharp.com/ 你得到以下内容:

public class Notification
{
    public string send_date { get; set; }
    public bool ignore_user_timezone { get; set; }
    public string content { get; set; }
}

public class Request
{
    public string application { get; set; }
    public string auth { get; set; }
    public List<Notification> notifications { get; set; }
}

public class RootObject
{
    public Request request { get; set; }
}

现在您需要解决JsonUtility所需的一些问题:

[Serializable]
public class Notification
{
    public string send_date;
    public bool ignore_user_timezone;
    public string content;
}
[Serializable]
public class Request
{
    public string application;
    public string auth;
    public List<Notification> notifications;
}
[Serializable]
public class RootObject
{
    public Request request;
}

最后:

RootObject root = JsonUtility.FromJson<RootObject>(jsonStringFile);

答案 1 :(得分:0)

你也可以像这样使用SimpleJSON;

string GetRequest () {
    JSONNode root = JSONNode.Parse("{}");

    JSONNode request = root ["request"].AsObject;
    request["application"] = "APPLICATION_CODE";
    request["auth"] = "API_ACCESS_TOKEN";

    JSONNode notification = request ["notifications"].AsArray;
    notification[0]["send_date"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
    notification[0]["ignore_user_timezone"] = "true";
    notification[0]["content"] = "Hello world!";

    return root.ToString ();
}