我正在使用PushWoosh发送自定义数据,并希望能够将ParseObject从一个用户发送到另一个用户。据我所知,这只有在我首先将ParseObject转换为jsonstring然后在检索时将其转换回ParseObject时才有可能。
我尝试过使用newtonsoft,miniJson和简单的json,但没有运气。
首先......这可以实现,如果是的话......怎么样?
ParseObject test = new ParseObject("jsontest");
test["gameid"] = "12345";
test["player"] = "hanson";
string parsetoJson = JsonConvert.SerializeObject(test);
Debug.Log ("ParseJson: "+parsetoJson);
//Returns: ParseJson: [{"Key":"gameid","Value":"12345"},{"Key":"player","Value":"hanson"}]
ParseObject test2 = new ParseObject("jsontest");
test2 = JsonConvert.DeserializeObject<ParseObject>(parsetoJson);
Debug.Log ("ParseBack: "+test2.Get<string>("gameid"));
这会出现此错误:
无法隐式转换类型
object' to
Parse.ParseObject&#39;。一个 存在显式转换(您是否错过了演员?)
希望在此事上提供帮助并提前感谢: - )
答案 0 :(得分:0)
可能有其他方法可以做到这一点,但我们使用的json.net方式是:
string json = @"{
'Name': 'Bad Boys',
'ReleaseDate': '1995-4-7T00:00:00',
'Genres': [
'Action',
'Comedy'
]
}";
Movie m = JsonConvert.DeserializeObject<Movie>(json);
您当然需要定义您在本地反序列化的类,例如:
public class Movie {
public string Name { set; get; }
public DateTime ReleaseDate { set; get; }
public List<string> Genres { set; get; }
}
长话短说,定义你正在序列化为适当的类,它会起作用。
答案 1 :(得分:0)
以下是您需要添加以修复所提供示例的示例。你基本上只需要在json的预期结构之后创建一个结构化的类。
using UnityEngine;
using Newtonsoft.Json;
public class JsonThings : MonoBehaviour
{
public class ParseObject
{
[JsonProperty]
public int gameId;
[JsonProperty]
public string player;
public ParseObject(string name)
{
}
}
// Use this for initialization
void Start ()
{
ParseObject test = new ParseObject("jsontest");
test.gameId = 12345;
test.player = "hanson";
string parsetoJson = JsonConvert.SerializeObject(test);
Debug.Log("ParseJson: " + parsetoJson);
//Returns: ParseJson: [{"Key":"gameid","Value":"12345"},{"Key":"player","Value":"hanson"}]
ParseObject test2 = new ParseObject("jsontest");
test2 = JsonConvert.DeserializeObject<ParseObject>(parsetoJson);
Debug.Log("ParseBack: " + test2.gameId);
}
}