C#将JSON转换为数据

时间:2017-03-03 04:53:26

标签: c# json tiled

我正在使用程序(Tiled)为游戏创建tilesets,它会抛出与此类似的JSON文件:

http://pastebin.com/t7UHzG7w

我希望将其变成我可以使用的数据("数据"的地图,或者#34;数据"的int [] []。 ,以及宽度/高度,所有其他信息都是无关的,我已经知道了,并且不知道如何去做。

如何以可以处理的格式从JSON转到数据?

3 个答案:

答案 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)

答案 2 :(得分:1)

您可以使用Newtonsoft.Json。然后在声明对象/模型后,可以像

一样使用它
string Json = ""; // your Json string
var Result = JsonConvert.DeserializeObject<YourModel>(Json);

要获取包,您可以使用Nugget功能并输入:

Install-Package Newtonsoft.Json