`

解决一个json解析的问题

阅读更多

今天遇到同事的一个问题,感觉很有代表性,写出来大家一块分析下。

代码如下:
@ResponseBody
@RequestMapping( "/getMHotelIdsBySupplierId" )
public List<String> getCodeIdByType(@RequestParam ("type" )String type){
             List<String> motelIds = xxxxx;
          return modelIds;
}
 然后这个代码如果被别的action调用
public List<String> getCodeIdByType(){
       List<String> codes = JSON.parseArray(getCodeIdByType("type").toString(),String.class);
       System.out.println(codes);
}
   这个地方的错误是他感觉返回的东西是一个json,比如:["0010","11000"]这样的,但其实对象转json是在序列化的时候做的,这种普通的调用返回的并不是json对象。
   getCodeIdByType("type").toString()其实是[0010,11000],然后List<String>的结果是10,11000。 最明显的感觉是00丢了,但不报错。
   从这个地方来看,有很多地方做了兼容,导致这个错误隐藏的非常深,首先List的toString方法完了后是一个逗号分隔的数组,这个其实放到json里面就是一个数字的数组,另外一个json解析的时候,里面的元素不是字符串,但是它还是解析了,按照数字的数组进行了解析,即使参数里面给了String,也没有报错。
   所以正确的做法,直接调用就好,当然了,结果不是我们关注的,问题产生的原因还是挺好玩的。
分享到:
评论

相关推荐

    PB Json解析库

    综上所述,PB Json解析库是一个实用的工具,它解决了PB和JSON之间的互操作性问题,提高了数据交换的灵活性,促进了不同系统的协作。在实际项目中,合理运用这个库可以提升开发效率,降低系统间的集成难度。

    C语言精简JSON解析程序,可用于单片机等资源稀缺硬件

    JSON(JavaScript Object Notation...总的来说,这个精简的C语言JSON解析程序提供了一个轻量级的解决方案,适用于资源有限的单片机环境。开发者可以通过研究和改进这个项目,进一步提升在嵌入式系统中的JSON处理能力。

    cpp-BeneJSON是一个C语言的JSON解析器

    为了解决C语言在处理JSON时的不便,BeneJSON应运而生,它是一个专为C语言设计的高效、轻量级的JSON解析器。 BeneJSON的核心特点在于其速度和小巧的体积,这使得它在资源有限的环境中也能表现出色。作为一个C接口的...

    JSON解析和反解析源代码

    在这个名为"JSON-js-master"的压缩包中,我们很可能是找到了一个JavaScript实现的JSON解析和序列化库的源代码。 在JavaScript中,JSON解析是将JSON格式的字符串转换为JavaScript对象的过程,这个过程也称为解码。...

    JSON解析包3种解析jar包下载

    总结起来,JSON解析在Java开发中起着至关重要的作用,不同的解析库提供了多样化的解决方案,以满足不同项目的需求。无论选择哪个库,理解和熟练掌握其使用方法都将有助于提升开发效率和代码质量。

    json解析。net

    在描述中提到的".net的 解析json",JSON.NET通常是一个首选工具。它支持JSON的解析、序列化、反序列化以及LINQ to JSON等功能。 1. 解析JSON: 使用`JsonConvert.DeserializeObject&lt;T&gt;`方法,你可以将一个JSON字符...

    swift-Elevate一个Swift的JSON解析框架

    Elevate是一个专门针对Swift设计的高级JSON解析框架,它的目标是让JSON解析变得更简单、更可靠,并且具有高度的可组合性。 Elevate的核心理念是通过类型安全的方式来解析JSON,避免了传统的字符串匹配和强制类型...

    IOS json解析

    "IOS json解析"这个主题涵盖了如何在iOS应用中处理JSON数据,尤其是利用苹果内置的技术进行解析。本文将深入探讨JSON解析的基本概念、苹果提供的解析API以及如何在实际项目中运用。 首先,我们需要了解JSON的结构。...

    pb解析json

    总的来说,"pb解析json"是一个涉及数据序列化和反序列化的技术问题,作者通过纯代码的方式解决了从JSON到Protocol Buffers的转换,提供了高效且绿色的解决方案。对于需要处理大量数据交换的系统,这样的转换方法能...

    谷歌浏览器插件-json格式解析

    标签“谷歌浏览器插件 JSON解析”再次强调了这是针对谷歌浏览器的一个工具,专注于JSON数据的处理。 在提供的压缩包子文件名列表中,"pkgccpejnmalmdinmhkkfafefagiiiad_2020.05.2810_chrome.zzzmh.cn.crx"看起来像...

    pb_json解析、生成(修改)

    标题中的"pb_json解析、生成(修改)"指的是在PowerBuilder(简称PB)环境中处理JSON数据的相关操作,包括解析和生成JSON格式的数据,并可能涉及到对已有的解析或生成过程进行优化和修正,例如解决中文乱码问题。...

    Json解析demo

    它基于JavaScript的一个子集,设计简洁、易读易写,同时也易于机器解析和生成。JSON格式通常用于服务器向客户端发送数据,例如在网页加载时获取数据或在API请求中传递参数。 本“Json解析demo”将详细介绍如何处理...

    在J2ME环境下把JSON解析为Hashtable

    首先,我们需要一个JSON库,这里使用的是org.json.me库,它是一个轻量级的JSON解析库,适用于J2ME环境。以下是一个简单的JSONParser类的实现: ```java import java.util.Enumeration; import java.util.Hashtable;...

    linux下c语言json解析源码实现

    在Linux环境下,C语言是开发底层程序和系统级软件的常用工具,而JSON(JavaScript Object Notation)...同时,使用现有的开源库也是一个很好的选择,它们通常经过了广泛的测试和优化,可以提供更稳定和安全的解决方案。

    swift-Jsonify是一个讨人喜欢的JSON解析Swift框架

    Swift-Jsonify是一个专为Swift开发者设计的轻量级、易于使用的JSON解析框架,它极大地简化了在iOS、macOS、watchOS以及tvOS平台上处理JSON数据的过程。这个框架的目标是提供一个优雅、直观的API,让开发人员能够快速...

    Delphi_JSON delphi7解析JSON控件

    标题提到的"Delphi_JSON delphi7解析JSON控件"是指一个专为Delphi 7设计的组件,它使得开发者能够方便地在Delphi 7应用中解析和生成JSON数据。 Delphi 7虽然发布于2005年,但至今仍有很多项目在使用。然而,原生的...

    易语言水淼JSON解析模块源码

    易语言水淼JSON解析模块提供了一个自主解析JSON数据的解决方案,这意味着它不依赖于其他外部库或组件,而是内建了完整的解析算法。这样的设计使得该模块在易语言环境中使用更加方便,同时也减少了依赖性问题。 该...

    JsonSQL:用SQL语句解析JSON文件

    JsonSQL是为了解决在SQL世界与JSON世界之间建立桥梁的问题。它提供了一种简单且直观的方式来处理JSON数据,使得习惯于SQL的开发者无需学习新的查询语言就能有效管理JSON文档。通过熟悉且强大的SQL语法,JsonSQL为...

    JSON解析库

    JSONKit是一个高性能、易用的JSON解析库,特别针对iOS和Mac OS X平台进行了优化。 JSONKit库的设计目标是提供一种简洁、快速且无依赖的JSON解析解决方案。它利用了Objective-C的动态特性,如Key-Value Coding (KVC)...

    pb解析json工具

    "pb解析json工具"就是为了解决在protobuf和JSON之间进行转换的问题。这样的工具可能包含以下功能: 1. **编码和解码**:将protobuf格式的二进制数据转换为JSON字符串,同时也能将JSON字符串解析为protobuf的结构化...

Global site tag (gtag.js) - Google Analytics