2016-11-26 149 views
0

我要創建一個JSON POST請求在這種格式。Unity3D,創建一個JSON post請求

{ 
"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字符串,我不知道如何做到這一點,我已經嘗試了一些不同的東西,但永遠無法得到確切的格式。

真的很感謝任何形式的幫助。

謝謝!

回答

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); 
+0

太謝謝你了!我會試試看,並回復你! :) –

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(); 
}