在Unity中用C#读取和解析Json文件

6
这是代码。
using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;

public class csharpfile:MonoBehaviour{

    public void LoadJson()
    {
        using (StreamReader r = new StreamReader("file.json"))
        {
            string json = r.ReadToEnd();
            List<Item> items = JsonConvert.DeserializeObject<List<Item>>(json);


        }
    }

    public class Item
    {
        public int millis;
        public string stamp;
        public DateTime datetime;
        public string light;
        public float temp;
        public float vcc;
    }
}

现在我想解析文件内容(file.json)。
[ 
    { "millis": "1000", 
      "stamp": "1273010254", 
      "datetime": "2010/5/4 21:57:34", 
      "light": "333", 
      "temp": "78.32", 
      "vcc": "3.54" }, 
] 

在文件解析后,如何将内容打印在屏幕上,并如何写入文件。请帮忙……


1
在文件解析后,我该如何在屏幕上打印内容,并且如何写入文件。请帮忙……你尝试过什么? - Mivaweb
1个回答

4

用于打印反序列化值的代码:

                    string json = file.ReadToEnd();
                    List<Item> items = JsonConvert.DeserializeObject<List<Item>>(json);
                    foreach (var item in items)
                    {
                        Console.WriteLine(item.millis);
                    }

用于写入/序列化:

                var serObj = JsonConvert.SerializeObject(new Item
                {
                    //assign values here
                });

或者

                var stm = new MemoryStream();
                using (var sw = new StreamWriter(stm))
                {
                    var ser = new JsonSerializer();
                    ser.Serialize(sw, new Item());
                }

感谢您的时间。但是出现了错误:Error CS0103: 当前上下文中不存在名称为 'JsonConvert' 的内容 (CS0103) (Assembly-CSharp)。 - abhishek
从NuGet安装Newtonsoft.Json - Amit Kumar Ghosh
1
或者直接使用内置的JsonUtility.FromJson(string json)函数。 - Natasha Loiseau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接