C#: Json数组的 简单解析操作

18 篇文章 0 订阅

Json 数组简单解析 操作

前言:

游戏戏中,有时候会用到 一些数据保存到 json里面,在再需要的时候读取出来。一般是用来保存一些不常修改的文本信息,如游戏中每天固定的任务名与任务描述 数据 (一般是固定的)。下面记录一下自己在实践中,对 json 数组解析的简单操作 实现。

// 加载 json 文件
string strPath = "Json/text.json";                          // 需要先在资源目录下,创建一个Json 文件
TextAsset jsonText = Resources.Load (strPath) as TextAsset; // 系统自动加载数据文本方法,也可以自己实现

if (jsonText == null)
{
   return;
}

JsonData jsonData = JsonMapper.ToObject(jsonText.text);    // 转换为json数据

单个数组 json解析:
// 单个数组 json解析
string str = jsonData[0][0].ToString();    // 等同于: jsonData[0]["title"].ToString();
//Debug.Log("\n 当前json 数据:" + str);

Debug.Log("\n 当前 json 数据为 title:" + jsonData[0][0].ToString());
Debug.Log(" content: " + jsonData[0][1].ToString());

// 打印出数据为:
当前 json 数据为 title: 通告, content: 通告详情

嵌套多个数组 json 解析:

// 读取 "detail" 数组 数据 --- 嵌套json 数组 解析出的还是一个json 数组
JsonData m_data = jsonData[0][0];        // 等同于: jsonData["detail"][0] --- 取detail 下的第一个数组数据
string multiJson = m_data[0].ToString(); // 等同于: m_da["title"].ToString(); --- 取第一个数组中的第一个key值

Debug.LogFormat("\n 当前 json 数据为 title: {0}, content: {1}", m_data[0].ToString(), m_data[1].ToString());

// 打印出数据为:
当前 json 数据为 title: 通告, content: 通告详情


JsonData m_data1 = jsonData[1][1];        // 等同于: jsonData["content"][0] --- 取content 下的第二个数组数据

Debug.LogFormat("\n 当前 json 数据为 content:{0}", m_data1[0].ToString()); // --- 取第二个数组中的第一个key值

// 打印出数据为:
当前 json 数据为 content: 空气质量详情


Json 样例数据:

// 单个 json 数组 数据
[{
		"title": "通告",
		"content": "通告详情"
	},
	{
		"title": "天气预报",
		"content": "天气详情"
	}
]


// 嵌套json 数组 数据
{
	"detail": [{
			"title": "通告",
			"subtitle": "通告详情"
		},
		{
			"title": "天气预报",
			"subtitle": "天气详情"
		}
	],

	"content": [{
			"0": "通告详情~"
		},
		{
			"1": "空气质量详情~"
		}
	]
}
有兴趣的,还可以 多加几个复杂嵌套json数组,实现一下哈~



C#中,解析JSON数组类型可以使用JsonConvert.DeserializeObject方法。你可以使用泛型方法来将JSON字符串转换为指定的数组类型。例如,你可以使用以下代码来解析JSON数组字符串: ```csharp string json = "[1, 2, 3, 4, 5]"; int[] array = JsonConvert.DeserializeObject<int[]>(json); ``` 在上面的示例中,我们使用JsonConvert.DeserializeObject方法将JSON数组字符串转换为int类型的数组。你可以将JSON数组字符串作为参数传递给这个方法,并指定你期望的数组类型作为泛型参数。在这个示例中,我们期望得到一个int类型的数组。 引用提供了一个示例,使用JsonConvert.DeserializeObject方法解析JSON数组字符串。引用中的JsonConvertObject方法也可以用来解析JSON字符串,它是一个泛型方法,可以根据指定的类型返回解析后的对象。 总之,在C#解析JSON数组类型,你可以使用JsonConvert.DeserializeObject方法并指定期望的数组类型作为泛型参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [c# 使用Newtonsoft.Json解析JSON数组](https://blog.csdn.net/xinyuan178/article/details/113687229)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [C#解析JSON数组](https://blog.csdn.net/cxu123321/article/details/100780993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值