我的代碼中有一個 JSON 結構,我想將一個值傳遞給其中一個屬性。問題是我不知道該怎么做?由于它是 C# 中的一個完整字串,實作這一目標的可能方法是什么?
例如,我想將字串 appName 傳遞給 JSON 的 AppName。我該怎么做呢?
IEnumerator Start(){
var appName = "Testing001";
var json = @"{
'values': {
'AppName': '',
'Time': '23:15',
}
}";
var jsonBytes = Encoding.UTF8.GetBytes (json);
using (var www = new UnityWebRequest (url, "POST")) {
www.uploadHandler = new UploadHandlerRaw (jsonBytes);
www.downloadHandler = new DownloadHandlerBuffer ();
www.SetRequestHeader ("Content-Type", "application/json");
www.SetRequestHeader ("Accept", "text/plain");
yield return www.SendWebRequest ();
if (www.isNetworkError || www.isHttpError) {
Debug.Log (www.error);
} else {
Debug.Log (www.downloadHandler.text);
Debug.Log (www.error);
}
}
}
}
uj5u.com熱心網友回復:
免責宣告我不熟悉 Unity 的特性
所以你想使用變數值創建一些 JSON 是嗎?
正如其他人(和我自己)在評論中所說的那樣,您永遠不應該手動創建 JSON,因為很容易犯一個小錯誤并最終得到無效的 JSON。
你要么想使用剛性模型類,要么在緊要關頭,使用匿名型別。
var appName = "Testing001";
// create our model as an anonymous type using the `appName` variable value.
var model = new {
values = new {
AppName = appName,
Time = "23:15"
}
};
// Generate valid JSON
var json = JsonSerializer.Serialize(model);
結果,有效的 JSON 是
{"values":{"AppName":"Testing001","Time":"23:15"}}
如您所見,屬性名稱和字串具有雙引號并AppName具有所需的值。
更新 - 使用模型類
如果出于某種原因,您需要/擁有一個模型類而不是匿名型別,則應該使用必要的值對其進行實體化并將其傳遞給序列化程式...
給定模型類MyModel和MyModelValues
using System;
[Serializable]
public class MyModel
{
[SerializeField]
public MyModelValues values;
}
[Serializable]
public class MyModelValues
{
[SerializeField]
public string AppName;
[SerializeField]
public string Time;
}
然后您可以替代model使用模型類的創建。
// create our model as an anonymous type using the `appName` variable value.
var model = new MyModel
{
values = new MyModelValues
{
AppName = appName,
Time = "23:15"
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/360393.html
上一篇:替換字串中的html內容
