Unity读写Json文件

方法一 直接传结构体与保持文件名字

  public void WriteJson(object ob, string jsonName)

    {

        string json = LitJson.JsonMapper.ToJson(ob);

        byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);

        string filePath = Application.dataPath + "/Resources/" + jsonName + ".json";

        using (System.IO.FileStream stream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))

        {

            stream.Write(bytes, 0, bytes.Length);

        }

        UnityEditor.AssetDatabase.Refresh();//属性Asset,生成完成后立刻可以看到文件

    }

方法二 jsonwriter 半编译写法

  void CreateJson()

    {

        string path = Application.dataPath + "/Resources/Jsons/" + objBase.transform.name + ".json";

        FileInfo fileInfo = new FileInfo(path);

        StreamWriter sw = fileInfo.CreateText();

        StringBuilder sb = new StringBuilder();

        JsonWriter jsonwriter = new JsonWriter(sb);

        jsonwriter.WriteObjectStart();//1

        for (int i = 0; i < numbers.Count; i++)

        {

            jsonwriter.WritePropertyName("Number" + (i + 1));

            jsonwriter.WriteObjectStart();//1-1

            type = new List<Transform>();

            foreach (Transform child in numbers[i].transform)

                type.Add(child);

            jsonwriter.WritePropertyName("TypeCount"); jsonwriter.Write(type.Count);

            for (int j = 0; j < type.Count; j++)

            {

                jsonwriter.WritePropertyName("Type" + (j + 1));

                jsonwriter.WriteObjectStart();//1-1-1

                pos = new List<Transform>();

                foreach (Transform child in type[j].transform)

                    pos.Add(child);

                jsonwriter.WritePropertyName("Size"); jsonwriter.Write(pos[0].transform.localScale.x.ToString());

                jsonwriter.WritePropertyName("Pos");

                jsonwriter.WriteArrayStart();

                for (int k = 0; k < pos.Count; k++)

                {

                    jsonwriter.Write("(" + pos[k].transform.localPosition.x + "," + pos[k].transform.localPosition.y + ")");

                }

                jsonwriter.WriteArrayEnd();

                jsonwriter.WriteObjectEnd();//1-1-1

            }

            jsonwriter.WriteObjectEnd();//1-1

        }

        jsonwriter.WriteObjectEnd();//1

        sw.WriteLine(sb.ToString());

        sw.Close();

        AssetDatabase.Refresh();

    }

Json 里面的数据是double 类型,使用float 会出问题

double.Parse  float .Parse    不一样

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Unity简介 1. Unity界面 Shift + Space : 放大界面 Scene界面按钮渲染模式2D...
    MYves阅读 12,693评论 0 22
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,232评论 18 399
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 9,987评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,092评论 19 139
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,345评论 1 45

友情链接更多精彩内容