统一读取和解析 C# 中的 Json 文件

Posted

技术标签:

【中文标题】统一读取和解析 C# 中的 Json 文件【英文标题】:Read and parse a Json File in C# in unity 【发布时间】:2015-08-10 16:55:40 【问题描述】:

这里是代码

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" , 
] 

文件解析后如何在屏幕上打印内容以及如何写入文件.do help.....

【问题讨论】:

文件解析后如何在屏幕上打印内容以及如何写入文件.do help.....。你试过什么? Serialize and Deserialize Json and Json Array in Unity的可能重复 【参考方案1】:

用于打印deserialized 值:

                    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());
                

【讨论】:

感谢您的宝贵时间,但出现错误错误 CS0103:当前上下文中不存在名称“JsonConvert”(CS0103)(Assembly-CSharp) 从 NuGet 安装 Newtonsoft.Json 或者直接使用内置的JsonUtility.FromJson(string json)

以上是关于统一读取和解析 C# 中的 Json 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 c# (Unity) 中解析 JSON 文件

c#中,怎们从YAML文件读入数组?

c# 读取json的问题,JObject不能强转成JArray

Unity C# 读取安卓persistentDataPath目录中的json文件

C#常用方法——通过WebServices接口读取json字符并解析示例

是否有在 Windows Mobile 上用 C# 读取 JSON 的库? [关闭]