Warum bekam ich leere JSON-string zurückgegeben, während mithilfe von setter-und getter-in der object-Klasse in der Einheit 5.3?
Ich habe versucht, die neue JSON-Serialisierung Funktion in der Einheit 5.3, und ich schrieb das folgende code-Referenz die Verwendung z.B. Auf der Unity-website. Der einzige andere Teil, das ich gemacht habe, war das erstellen der Variablen der object-Klasse (FruitItem Klasse in meinem Fall) mit setter-und getter-anstatt Ihnen reinen public-Variablen. Dadurch habe ich nur ein paar von geschweiften Klammern ohne Inhalt. Wenn ich allerdings löschen die getter-und setter-und machen die Klasse von Variablen zu reinen public-Variablen, die ich in der Lage, um das richtige Ergebnis. Kann jemand irgendwelche Tipps für mich, warum das passiert ist? Vielen Dank im Voraus für Eure Hilfe.
Code, der funktioniert:
using UnityEngine;
using UnityEditor;
using System.Collections;
using System;
public class testJson : MonoBehaviour {
//Use this for initialization
void Start () {
FruitItem myFruit = new FruitItem (){ name = "apple", price = 52, quantity = 53 };
string jsonString = JsonUtility.ToJson (myFruit);
Debug.Log (jsonString);
}
//Update is called once per frame
void Update () {
}
}
[Serializable]
public class FruitItem{
//using the pure public variables and the output will be:
//{"name":"apple","quantity":53,"price":52}
public string name;
public int quantity;
public int price;
}
Code, der funktioniert nicht richtig:
using UnityEngine;
using UnityEditor;
using System.Collections;
using System;
public class testJson : MonoBehaviour {
//Use this for initialization
void Start () {
FruitItem myFruit = new FruitItem (){ name = "apple", price = 52, quantity = 53 };
string jsonString = JsonUtility.ToJson (myFruit);
Debug.Log (jsonString);
}
//Update is called once per frame
void Update () {
}
}
[Serializable]
public class FruitItem{
//using the pure public variables and the output will be:
//{}
public string name{ get; set;}
public int quantity{ get; set;}
public int price{ get; set;}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einheit kann nicht serialisiert Eigenschaften.
http://docs.unity3d.com/ScriptReference/SerializeField.html
Die Serialisierung-system verwendet werden, können Folgendes tun:
Feldes wird nur dann serialisieren, wenn es von einer Art ist, die Einheit serialisieren können:
Serialisierbare Typen sind: