unity自带Json解析对象处理数据
  2025/8/12 15:42:57
关键词:Json解析 C# unity 
  JsonUtility是Unity内置的JSON处理工具,主要用于MonoBehaviour和ScriptableObject的数据处理。它支持数字、字符、Vector和Quaternion等数据类型的序列化,以及public或SerializeField标记的字段。不支持Dictionary、Query、Stack等集合,枚举按数值存储。适用于场景对象信息的记录和恢复。

使用准备
//JsonUtility对象要求先定义Json对象如下:
[Serializable]
public class PlayerData
{
//支持int、float、double、decimal、long、Vector、Quateration数据类型
//支持 public 访问类型的类、字段 //支持 SerializeField 特性指引的类、字段
public string user,name;
public int uid,财富,能级;
}

方法说明

FromJson(string text)
Json字符串转对象:将Json字符串(Json数据)文本转存至类中。
如:
PlayerData kk = JsonUtility.FromJson(w1);//将Json字符串w1转为对象
PlayerPrefs.SetInt("财富",kk.财富); //保存某个数据到游戏

toJson(object target, bool prettyPrint)
对象转Json字符串:
如:public void Start() => Debug.Log(JsonUtility.ToJson(kk));

完整案例


using System;
using System.Collections.Generic;
using UnityEngine;

[Serializable]
public class RootObject{public List categories;}
[Serializable]
public class Category
{public string name;public List items;}

[Serializable]
public class Item
{public string id; public string description;}

public class JsonExample : MonoBehaviour
{
void Start()
{
string json = @"
{""categories"": [
  {""姓名"": ""刘波"",
  ""items"": [{ ""id"": ""1"", ""品名"": ""Ape"" },{ ""id"": ""2"", ""品名"": ""Ban"" }]
  },

  {""姓名"": ""张凡"",
  ""items"": [{ ""id"": ""3"", ""品名"": ""Rot"" },{ ""id"": ""4"", ""品名"": ""Col"" }]
  }
]}";


//将JSON字符串转为对象
RootObject root = JsonUtility.FromJson(json);

//访问嵌套数据
foreach (var category in root.categories)
{
Debug.Log($"Category: {category.name}");
foreach (var item in category.items)
{
Debug.Log($"Item ID: {item.id}, Description: {item.description}");
}
}

//将对象序列化回JSON字符串
string serializedJson = JsonUtility.ToJson(root, true);
Debug.Log(serializedJson);
}
}

 [1] [2]

相关文章(向右看)..

·相关
unity自带Json解析对象处
如何批量合并FBX模型顶点和重复/图
unity简单粒子贴图实现逼真体/图
Unity数据更新频率Updat/图
Unity中Vector3中一些
美女老板说小程序几百元搞定吗?最
Unity中用C#遍历文件夹遍历
Unity中代码GUI绘制方法大
你的小程序如何才能接受H5传递的
Unity如何使用HDRP,项目/图

·热点