簡體   English   中英

反序列化JSON文件

[英]Deserializing a JSON file

我有這個來自Unity的json數據。

{
"dataFile": {
    "date": "onsdag 9. mai 2018",
    "time": "16.32.01",
    "points": [
        {
            "m_Position": {
                "x": 89.3330078125,
                "y": 41.69880676269531,
                "z": 49.13698196411133
            }
        }
    ]
}

我見過這種反序列化json數據的方法:

string json = @"{
  'Email': 'james@example.com',
  'Active': true,
  'CreatedDate': '2013-01-20T00:00:00Z',
  'Roles': [
    'User',
    'Admin'
  ]
}";

Account account = JsonConvert.DeserializeObject<Account>(json);
Console.WriteLine(account.Email);

但是我似乎找不到一種方法可以將我的數據(第一個代碼示例)添加到“ string json ”而不會出錯。 json數據包含以下部分:dataFile,points和m_position,這就是為什么我認為它不起作用的原因。

有人知道我如何反序列化我的json數據嗎?

我嘗試用“”更改“

string json = @"{
'dataFile': {
    'date': 'onsdag 9. mai 2018',
    'time': '16.32.01',
    'points': [
        {
            'm_Position': {
                'x': 89.3330078125,
                'y': 41.69880676269531,
                'z': 49.13698196411133
            }
        }
    ]
}
}";

        position pos1 = JsonConvert.DeserializeObject<Position>(json);
        Console.WriteLine(pos1.x);
        Console.ReadLine();

這是Position類

public class Position
{
    public string x { get; set; }
}

將Edit> Paste JSON中的選項用作類插入類jsonPosSample中

    class jsonPosSample
{
    public Rootobject rootobject;
    public Datafile datafile;
    public Point point;
    public M_Position m_Position;

    public class Rootobject
    {
        public Datafile dataFile { get; set; }
    }

    public class Datafile
    {
        public string date { get; set; }
        public string time { get; set; }
        public Point[] points { get; set; }
    }

    public class Point
    {
        public M_Position m_Position { get; set; }
    }

    public class M_Position
    {
        public float x { get; set; }
        public float y { get; set; }
        public float z { get; set; }
    }
}

然后我可以用這條線

var jPosData = JsonConvert.DeserializeObject<jsonPosSample>(strJSON);

其中strJSON是要解析的json數據的字符串。

然后我用我的debugOutput方法寫出對象中的第一個值

debugOutput("date test " + jPosData.datafile.date);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM