C# 将 JSON 转换为数据

C# Turn JSON Into Data

我正在使用一个程序 (Tiled) 为游戏创建 tilesets,它生成 JSON 类似于这样的文件:

http://pastebin.com/t7UHzG7w

我想把它变成我可以使用的数据("data" 的地图,或 "data" 的 int[][],以及 width/height,所有其他信息都是无关紧要的,我已经知道了),并且真的不知道该怎么做。

如何从 JSON 转换为我可以处理的格式的数据?

您应该使用创建模型 class 来表示您拥有的 JSON 数据。然后你可以使用 JavaScriptSerializer 或 Newsoft JOSN 库将此数据转换为对象。

您应该为您的数据创建模型 class:

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:

安装包Newtonsoft.Json

Newtonsoft.Json 是你的朋友。

https://www.nuget.org/packages/Newtonsoft.Json http://www.newtonsoft.com/json/help/html/DeserializeObject.htm

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

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

要获取程序包,您可以使用 Nugget 函数并输入:

Install-Package Newtonsoft.Json