分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Json解析

发布时间:2023-09-06 01:26责任编辑:顾先生关键词:暂无标签
 #region Json解析相关 ???/// <summary> ???/// 从json中读取数据 ???/// </summary> ???/// <param name="json"></param> ???/// <returns></returns> ???List<SceneData> GetSceneDataListFromJson(string json) ???{ ???????List<SceneData> sceneDataList = new List<SceneData>(); ???????List<string> sceneNameList = GetValueListFromJson(json, "sceneName"); ???????List<string> snList = GetValueListFromJson(json, "sn"); ???????List<string> timeList = GetValueListFromJson(json, "time"); ???????List<string> posDataList = GetValueListFromJson(json, "posList"); ???????if (sceneNameList.Count * 4 != (sceneNameList.Count + snList.Count + timeList.Count + posDataList.Count)) ???????{ ???????????Debug.LogError("json解析各属性数目不符!"); ???????????return null; ???????} ???????for (int i = 0; i < sceneNameList.Count; i++) ???????{ ???????????SceneData sceneData = new SceneData(); ???????????sceneData.sceneName = sceneNameList[i]; ???????????sceneData.sn = int.Parse(snList[i]); ???????????sceneData.time = int.Parse(timeList[i]); ???????????string posListStr = posDataList[i]; ???????????List<Vector2> posList = new List<Vector2>(); ???????????string[] coordArr = posListStr.Split(‘,‘); ???????????for (int m = 0; m < coordArr.Length; m++) ???????????{ ???????????????string[] coord = coordArr[m].Split(‘_‘); ???????????????float x = float.Parse(coord[0]); ???????????????float y = float.Parse(coord[1]); ???????????????posList.Add(new Vector2(x, y)); ???????????} ???????????sceneData.posList = posList; ???????????sceneDataList.Add(sceneData); ???????} ???????return sceneDataList; ???} ???List<string> GetValueListFromJson(string json, string valueName) ???{ ???????List<string> valueList = new List<string>(); ???????while (true) ???????{ ???????????int endIndex = json.Length - 1; ???????????string valueStr = GetFirstValueFromJson(json, valueName, out endIndex); ???????????if (valueStr == null) ???????????{ ???????????????break; ???????????} ???????????valueList.Add(valueStr); ???????????json = json.Substring(endIndex); ???????} ???????if (valueList.Count == 0) ???????{ ???????????Debug.LogError("can‘t find the " + valueName + " from json!"); ???????} ???????return valueList; ???} ???string GetFirstValueFromJson(string json, string valueName, out int endIndex) ???{ ???????int beginIndex = json.IndexOf(valueName); ???????if (beginIndex == -1) ???????{ ???????????endIndex = json.Length - 1; ???????????return null; ???????} ???????endIndex = json.IndexOf(‘,‘, beginIndex); ???????int preLength = valueName.Length + 2; ???????string goalStr = json.Substring(beginIndex, endIndex - beginIndex); ???????if (goalStr.Contains("["))//如果包含数组 ???????{ ???????????endIndex = json.IndexOf("]") + 1; ???????????goalStr = json.Substring(beginIndex, endIndex - beginIndex); ???????} ???????goalStr = goalStr.Substring(preLength, goalStr.Length - preLength); ???????goalStr = goalStr.Replace("\"", ""); ???????goalStr = goalStr.Replace("[", ""); ???????goalStr = goalStr.Replace("]", ""); ???????return goalStr; ???} ???#endregion

Json解析

原文地址:https://www.cnblogs.com/luxishi/p/9275619.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved