Json文件的操作

【JSON文件】

1、保存文件(序列化),将程序对象保存到本地

//程序对象类
 public class Paths
    {
        public string Name;
        public List<Vector3> position;
        public List<Vector3> rotation;
    }

    Paths paths;
    /// <summary>
    /// 初始化路径类
    /// </summary>
    void InitPaths()
    {
        paths = new Paths();
        paths.Name = "这是一个测试";
        paths.position = InputData.listPosition;
        paths.rotation = InputData.listRotation;
    }

    /// <summary>
    /// 保存json
    /// </summary>
    /// <param name="pathName"></param>
    //private void SaveJson(string pathName)
    private void SaveJson()
    {
        //string savePath = @"C:\Users\T01015\Desktop\Test01.json";
        //string savePath = @"D:\AutoPath";
        if (!Directory.Exists(savePath))
        {
            //文件夹不存在时自动创建文件夹
            Directory.CreateDirectory(savePath);
        }

        InitPaths();
        DirectoryInfo dir = new DirectoryInfo(savePath);

        string json = JsonUtility.ToJson(paths);
        File.WriteAllText(savePath + @"\" + "方案" + dir.GetFiles().Length + ".json", json, Encoding.UTF8);

        print("保存的地址:" + savePath);
    }

2、读取文件(反序列化),将文件转换为对象供程序使用

 void LoadJson(string txtName)
    {
        //清除场景路线图
        for (int i = 0; i < pointPoll.childCount; i++)
        {
            Destroy(pointPoll.GetChild(i).gameObject);
        }

        string str = File.ReadAllText(savePath + @"\" + txtName + ".json" , Encoding.Default);
        paths = JsonUtility.FromJson<Paths>(str);//解析json

        print(paths.Name);
        foreach (Vector3 item in paths.position)
        {
            print(item.x+","+item.y+","+item.z);
        }
    }

坑点:如有创建集合对象类,那么该对象类要标记[Serializable],否则解析不到内容。例如:

// Json解析为该对象
public class Response
{
    public List<Student> list;
}

[Serializable]
public class Student
{
    public int id;
    public string name;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python中的json文件操作主要涉及到读取和写入json文件。 1. 读取json文件: 要读取json文件,首先需要导入json模块。然后可以使用`json.load()`函数来加载json文件并将其转换为Python对象。例如: ``` import json # 读取json文件 with open('data.json', 'r') as file: data = json.load(file) # 打印读取的数据 print(data) ``` 在上面的代码中,我们首先打开并读取名为`data.json`的文件,然后使用`json.load()`函数将其转换为Python对象,最后打印出来。 2. 写入json文件: 要写入json文件,同样需要导入json模块。然后可以使用`json.dump()`函数将Python对象写入到json文件中。例如: ``` import json # 要写入的数据 data = { "name": "John", "age": 30, "city": "New York" } # 写入json文件 with open('data.json', 'w') as file: json.dump(data, file) ``` 在上面的代码中,我们首先定义了要写入的数据`data`,然后使用`json.dump()`函数将其写入到名为`data.json`的文件中。 综上所述,Python中的json文件操作主要涉及到读取和写入json文件。通过导入json模块和使用`json.load()`和`json.dump()`函数,我们可以很方便地进行json文件的读写操作。 ### 回答2: Python中的json模块提供了一种处理JSON格式数据的方式。JSON是一种常用的数据交换格式,可以在不同的编程语言之间进行数据传输,也可以作为配置文件的格式。 在Python中,我们可以使用json模块的loads()和dumps()函数来进行JSON的解析和序列化操作。loads()函数可以将JSON格式的数据转换为Python的字典或列表对象,而dumps()函数可以将Python对象转换为JSON格式的字符串。 除了这两个基本函数外,json模块还提供了一些其他的方法来处理JSON数据。例如,json.load()和json.dump()函数可以直接读取和写入JSON文件,而不需要手动进行解析和序列化操作json.dumps()函数可以将Python对象转换为JSON格式的字符串,并可以指定一些参数来控制输出的格式。json.loads()函数可以将JSON格式的字符串转换为Python的字典或列表对象。 在进行JSON文件操作时,我们通常需要使用with语句来确保文件的正确关闭。下面是一个简单的例子,演示了如何读取和写入JSON文件: ```python import json # 读取JSON文件 with open('data.json', 'r') as f: data = json.load(f) # 修改数据 data['name'] = 'Alice' # 写入JSON文件 with open('data.json', 'w') as f: json.dump(data, f) ``` 通过这个例子,我们可以看到,使用json模块操作JSON文件非常简单。我们只需要将JSON文件读取到Python对象中,对对象进行修改或添加新的键值对,然后将修改后的对象保存回JSON文件即可。 ### 回答3: Python中的json模块提供了一种简便的方式来处理JSON数据。JSON是一种轻量级的数据交换格式,常用于数据的存储和交互。 首先,我们可以使用json模块中的loads()函数将JSON字符串解析为Python对象。load()函数可以从文件中读取JSON数据并解析为Python对象。这两个函数返回的是Python的字典或列表类型。 如果想将Python对象转换为JSON字符串,可以使用json模块中的dumps()函数。dump()函数可以将JSON数据写入文件。 另外,json模块还提供了loads()和dumps()的变体:load()和dump(),它们可以直接解析读取文件和写入文件。 除了基本的读写操作json模块还提供了一些工具函数来处理JSON数据。例如,json模块中的json_normalize()函数可以将嵌套的JSON数据展平为扁平的表格,方便进行数据分析和处理。 总结起来,Python中的json模块提供了一套方便的工具来处理JSON数据。无论是解析JSON数据,还是将Python对象转换为JSON字符串,都可以找到相应的函数来完成。使用json模块,可以轻松地进行JSON数据的读写和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值