我正在使用程序(Tiled)为游戏创建tilesets,它会抛出与此类似的JSON文件:
我希望将其变成我可以使用的数据("数据"的地图,或者#34;数据"的int [] []。 ,以及宽度/高度,所有其他信息都是无关的,我已经知道了,并且不知道如何去做。
如何以可以处理的格式从JSON转到数据?
答案 0 :(得分:2)
您应该使用create a model class来表示您拥有的JSON数据。然后,您可以使用JavaScriptSerializer或Newsoft JOSN库将此数据转换为对象。
您应该为数据创建模型类:
public class Layer
{
public List<int> data { get; set; }
public int height { get; set; }
public string name { get; set; }
public int opacity { get; set; }
public string type { get; set; }
public bool visible { get; set; }
public int width { get; set; }
public int x { get; set; }
public int y { get; set; }
}
public class Tileset
{
public int columns { get; set; }
public int firstgid { get; set; }
public string image { get; set; }
public int imageheight { get; set; }
public int imagewidth { get; set; }
public int margin { get; set; }
public string name { get; set; }
public int spacing { get; set; }
public int tilecount { get; set; }
public int tileheight { get; set; }
public int tilewidth { get; set; }
}
public class Data
{
public int height { get; set; }
public List<Layer> layers { get; set; }
public int nextobjectid { get; set; }
public string orientation { get; set; }
public string renderorder { get; set; }
public int tileheight { get; set; }
public List<Tileset> tilesets { get; set; }
public int tilewidth { get; set; }
public int version { get; set; }
public int width { get; set; }
}
完成此操作后,您可以使用Newtonsoft.Json库将字符串数据解析为此对象。
string text = "<Your Json data>";
var result = JsonConvert.DeserializeObject<Data>(text);
您可以从这里下载Newtonsoft JSON库:
http://www.newtonsoft.com/json
或者也使用NPM:
Install-Package Newtonsoft.Json
答案 1 :(得分:2)
Newtonsoft.Json是你的朋友。
https://www.nuget.org/packages/Newtonsoft.Json http://www.newtonsoft.com/json/help/html/DeserializeObject.htm
答案 2 :(得分:1)
您可以使用Newtonsoft.Json
。然后在声明对象/模型后,可以像
string Json = ""; // your Json string
var Result = JsonConvert.DeserializeObject<YourModel>(Json);
要获取包,您可以使用Nugget
功能并输入:
Install-Package Newtonsoft.Json