当前位置: 首页 > news >正文

南昌做网站哪家最好/搜狗推广助手

南昌做网站哪家最好,搜狗推广助手,提供零基础网站建设教学培训,现在清算组备案在哪个网站做LitJson使用中需要注意的一些问题 使用C#做Untiy开发时,有解析Json的需求,选择使用了LitJson这个库,因为之前我们是使用lua的,这个库会将Json解析后保存为JsonData,这个JsonData和lua的table使用上有点类似&#xff0c…

LitJson使用中需要注意的一些问题

使用C#做Untiy开发时,有解析Json的需求,选择使用了LitJson这个库,因为之前我们是使用lua的,这个库会将Json解析后保存为JsonData,这个JsonData和lua的table使用上有点类似,但有些问题要注意。

  • 取值时要先检测key是否存在 
    lua的table可以使用 some_table.key或 some_table[‘key’] 来取值,key不存在则返回nil,但是JsonData中如果key不存在,则 some_data[“key”] 会抛出异常,所以在取值前必须要先用Contains检测下,并且由于JsonData同时实现了IDictionary和IList接口,并且都是实现为显示接口成员,所以还要显示的指定是IDictionary的Contains:
int intValue = 0;
if(((IDictionary)some_data).Contains("value")){intValue = (int)responseData["value"]; } 
  • 取值后要转型 
    和lua不同,c#是强类型的,从JsonData中取出的值必须要转型才能赋值,如上面的代码,使用(int)强转。当然如果value本身就是JsonData则可直接赋值给JsonData类型的变量。

  • 整形值转型到long可能抛出异常 
    如果json文本中含有数字,LitJson会优先识别为int32,仅当Int32.TryParse失败时才识别为int64,这其实也是合理的。问题是想把某个整形值转换为Long时,很可能抛出异常,例如: long value = (long)data[“key”]; 如果key对应的值是1000这样,这个转换就会抛出异常。这是因为LitJson没有考虑到int32到int64的转换。我修改了一下Int64的转换函数就可以了,修改后的函数如下:

public static explicit operator Int64 (JsonData data) { if (data.type != JsonType.Long && data.type != JsonType.Int) throw new InvalidCastException ( "Instance of JsonData doesn't hold an int"); return (data.type == JsonType.Long)?data.inst_long : data.inst_int; }
  • 使用IDictionary和IList接口的方法时要先转型到相应接口 
    如上面所说,JsonData同时实现了IDictionary和IList接口,并且都是实现为显示接口成员,这两个接口有一些方法是同名的,比如Remove方法,一个是void IList.Remove (object value),另一个是void IDictionary.Remove (object key)。尽管一个JsonData对象不可能即是数组又是键值对,但是直接调用Remove的时候还是要转换到相应的接口。这个和lua的table相比还是不太方便。当然了,即便不是同名的接口,由于都实现为显示接口成员了,还是必须转型到接口才能调用。

  • 不支持取值转型到ulong等类型 
    JsonData取值时的转型,只支持几种有限的类型,没有ulong等无符号类型的转换函数。如果想把取得的值转型到一个ulong,例如:

ulong value;
value = (ulong)some_data["key"];

结果是会调用到Double的转型函数,如果key对应的value不是一个double则会产生InvalidCastException。

    • 要解析的string里面不能包含0值 
      我们遇到的一个bug是,服务端传过来的Json字符串末尾人为的加了一个’/0’,结果JsonMapper.ToObject就挂了。LitJson可能认为一个c#字符串中不应该包含’/0’,所以他没有处理这种情况,对于不能处理的字符他抛出了一个异常。尽管人为加’/0’是没必要的,但是这显然也是LitJson实现时考虑不周全。

转载于:https://www.cnblogs.com/lcyuhe/p/4895043.html

http://www.lbrq.cn/news/1406665.html

相关文章:

  • 建设工程司法解释/西安seo黑
  • 保山市建设局网站登录/西安百度网站快速优化
  • 顺德电子商务网站建设/免备案域名
  • 网站建设要学什么/以网红引流促业态提升
  • 泰安网站建设热线电话/全国病毒感染最新消息
  • 专门做考研的网站/优化排名seo
  • xyz域名做网站好么/色盲测试图
  • e时代速递搜索引擎网站建设/百度seo优
  • 小县城 交友网站 很难做/资源企业网站排名优化价格
  • 中国网站排名 优帮云/企业培训师
  • tech域名可以做网站吗/精准网络推广
  • 宣威市住房和城乡建设局网站/网站建设规划书
  • 网站加速打开/seo顾问阿亮
  • 中建国际建设有限公司官网/大连网站优化
  • 优化网站推广网站/seo优化推广教程
  • 做pc端网站价位/seo教程百度网盘
  • 做营销型网站/云搜索下载
  • wordpress 营销模板下载/seo免费培训视频
  • 大连日文网站设计/10000个免费货源网站
  • 推广论坛有哪些/搜索优化引擎
  • 网站开发常见方法/深圳优化公司找高粱seo服务
  • 网站开发设计语言/网站设计是做什么的
  • 自己建网站 知乎/seo网络营销推广公司
  • ui设计师可以做到多少岁/seo网站推广是什么
  • 打电话沟通做网站/竞价外包
  • 虎门做网站公司/域名收录查询工具
  • 自己搭建服务器做视频网站/如何获取网站的seo
  • app开发导入网站模板/中文搜索引擎排名
  • drupal做新闻网站/查看域名每日ip访问量
  • 长沙做网站建设公司排名/免费建设网站平台
  • 【自动驾驶】8月 端到端自动驾驶算法论文(arxiv20250819)
  • “道法术器” 思维:解析华为数字化转型
  • 决策树的笔记
  • Matlab数字信号处理——基于最小均方误差(MMSE)估计的自适应脉冲压缩算法复现
  • C#读取文件, IO 类属性及使用示例
  • [辩论] TDD(测试驱动开发)