MiniJson解释Json字符串

摘要:
在做项目时,分别用到这两种json数据,首先download一个minijson程序集吧,下面重点说下处理的方法。=null){StopCoroutine;}else{    Dictionary dictJson=MiniJSON.Json.DeserializeasDictionary;DictionarydictLevels=dictJson["items"]asDictionary;}}2,{"result":1,"name":"《小鸡BIBI》漫宠实惠大礼包","award":[{"num":14000,"propId":0,"type":2},{"num":15,"propId":0,"type":3}]}IEnumeratorGetFMaReward{WWWwww=newWWW;yieldreturnwww;if(www.error!";}}小小总结一下:其实第二种已经包含了第一种的情况,将award数组转化给List泛型集合,数组每个元素{"num":14000,"propId":0,"type":2}看作一个object,很明显这样已经转化为了第一种情况了,再将List集合中每项单独转化成字典。

在做项目时,分别用到这两种json数据,首先download一个minijson程序集吧,下面重点说下处理的方法。

1,{"result":1,"playerRank":2,"item":{"item1":1001,"item2":0,"item3":3,"item4":4}}

IEnumerator GetLoginData(string url)

{

WWW www = new WWW(url);
yield return www;
if (www.error != null)
{

StopCoroutine("GetLoginData");

}

else

{    

Dictionary<string, object> dictJson = MiniJSON.Json.Deserialize(www.text) as Dictionary<string, object>;

Dictionary<string, object> dictLevels = dictJson["items"] as Dictionary<string, object>;

}

}

2,{"result":1,"name":"《小鸡BIBI》漫宠实惠大礼包","award":[{"num":14000,"propId":0,"type":2},{"num":15,"propId":0,"type":3}]}

IEnumerator GetFMaReward(string url)
{
WWW www = new WWW(url);
yield return www;
if (www.error != null)
{
GlobalVariable.isConfirmUpLevel = true;
confirmBtnLodingF.SetActive(false);
goWarnFMaLbl.GetComponent<UILabel>().text = "F码错误!";
Invoke("ClearWarnLbl", 4.0f);
StopCoroutine("GetFMaReward");
}

else
{
Dictionary<string, object> dictJson = MiniJSON.Json.Deserialize(www.text) as Dictionary<string, object>;
if (System.Convert.ToInt32(dictJson["result"]) == 1)
{
List<object> awardList = dictJson["award"] as List<object>;
int totalAwardGold = 0;
int totalAwardPower = 0;
foreach (var item in awardList)
{
Dictionary<string, object> dictAward = item as Dictionary<string, object>;
int type = Convert.ToInt32(dictAward["type"]);
//金币奖励
if (type == 2)
{
totalAwardGold += Convert.ToInt32(dictAward["num"]);
GlobalVariable.sg_GoldNum += Convert.ToInt32(dictAward["num"]);
}
//体力
if (type == 3)
{
totalAwardPower += Convert.ToInt32(dictAward["num"]);
GlobalVariable.sg_ChallengeNum += Convert.ToInt32(dictAward["num"]);
}
}
goGoldNum.GetComponent<UILabel>().text = GlobalVariable.sg_GoldNum.ToString();
goNowTime.GetComponent<NowTime>().showNum();
goExchangeLiBao.SetActive(false);
goFMaSuccess.SetActive(true);
goFMaSuccessLbl.GetComponent<UILabel>().text = "恭喜你获得 " + totalAwardPower + " 体力, " + totalAwardGold + " 金币!";

}

}

小小总结一下:其实第二种已经包含了第一种的情况,将award数组转化给List<object>泛型集合,数组每个元素{"num":14000,"propId":0,"type":2}看作一个object,很明显这样已经转化为了第一种情况了,再将List集合中每项单独转化成字典。

免责声明:文章转载自《MiniJson解释Json字符串》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Altium中Logo的导入方法及大小调整利用MongoDB进行地理坐标查询下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

封装两个简单的Jquery组件

Jquery给我们提供了很大的方便,我们把他看成是一个公共库,以致在这个公共库上延伸出了很多Jquery插件;在项目过程中,有些插件总是不那么令人满意; 主要说两个项目用途: 1、 遮罩层,跟一般的遮罩层不一样,我需要实现的是对某一个元素进行局部遮罩; 2、 冒泡提示,网上有很多,我需要的只是一种在页面指定位置弹出来的一个静止定位的div而已;两个就自己了...

解决Flink消费Kafka信息,结果存储在Mysql的重复消费问题

背景 最近项目中使用Flink消费kafka消息,并将消费的消息存储到mysql中,看似一个很简单的需求,在网上也有很多flink消费kafka的例子,但看了一圈也没看到能解决重复消费的问题的文章,于是在flink官网中搜索此类场景的处理方式,发现官网也没有实现flink到mysql的Exactly-Once例子,但是官网却有类似的例子来解决端到端的仅一...

Servlet异步处理和文件上传

1. 什么是异步处理 原来,在服务器没有结束响应之前,浏览器是看不到响应内容的!只有响应结束时,浏览器才能显示结果! 现在异步处理的作用:在服务器开始响应后,浏览器就可以看到响应内容,不用等待服务器响应结束! 2. 实现异步的步骤 * 得到AsyncContext,它异步上下文对象 AsyncContext ac = request.startAsync(...

【RocketMQ】同一个项目中,同一个topic,可以存在多个消费者么?

一、问题答案 是不可以的 而且后注册的会替换前注册的,MqConsumer2会替换MqConsumer,并且只结束tag-2的消息 /** * @date 2019/05/28 */ @Component @Slf4j public class MqConsumer implementsMessageConsumer { @Overr...

Java 之 Scanner 类

一、Scanner 类 Scanner 是一个可以解析基本类型和字符串的简单文本扫描器。 Demo: 1 Scanner sc = newScanner(System.in); 2 int i = sc.nextInt(); System.in 系统输入指的通过键盘录入数据。 二、引用类型使用步骤   1、导包 使用 import 关键字导包,在类的所有代...

Java中String的 "引用" 传递

1、来看一段有趣但又让人困惑的代码片段 public static voidmain(String[] args){ String x = new String("ab"); change(x); System.out.println(x); } public static void...