错误现象:

错误分析及其解答:

JSONStringer可以直接嵌套JSONArray,JSONArray可以作为
JSONStringer的值。
我错误的原因是本质是:
JSONArray存放的是JSONStringer,
正确的是存放JSONObject。
 
代码如下:
     /**
* 方法名: insertCheckStockDetails(String apiname, List<Map<String,String>>checkStockDetailList)
* 功 能:上传盘点数量
* 参 数:-
* 返回值: -
*/
public String insertCheckStockDetails(String apiname, List<Map<String,String>>checkStockDetailList)
{
//应用级请求参数
JSONStringer appLvlRequestJson;
//应用级请求参数·盘点明细List
//JSONStringer checkStockDetailListJosn = null;;
//追加系统级请求参数
JSONStringer sysLvlRequestJson = null;
//结果集
String strResponse; //结果ArrayList
List<Map<String,String>> checkDetailArrayList = new ArrayList<Map<String,String>>();
try {
//应用级请求参数中的check_stock_detail_list设定属性值
Iterator detailIterator = checkStockDetailList.iterator(); JSONArray checkStockDetailJSONArray = new JSONArray();
while(detailIterator.hasNext()){
Map map = (Map) detailIterator.next(); JSONObject jSONObject = new JSONObject(); jSONObject.put("check_id", map.get("checkid")); jSONObject.put("goods_id", map.get("goodsid")); jSONObject.put("check_amount", map.get("checkamount")); checkStockDetailJSONArray.put(jSONObject);
// JSONStringer checkStockDetailListJosn = new JSONStringer();
// checkStockDetailListJosn.object()
// .key("check_id").value(map.get("checkid"))
// .key("goods_id").value(map.get("goodsid"))
// .key("check_amount").value(map.get("checkamount"))
// .endObject();
// checkStockDetailJSONArray.put(checkStockDetailListJosn);
} //应用级请求参数
appLvlRequestJson = new JSONStringer().object().key("check_stock_detail_list").value(checkStockDetailJSONArray).endObject(); sysLvlRequestJson=SetParamDao.SetJsonparam(apiname,appLvlRequestJson);
} catch (JSONException e1) {
e1.printStackTrace();
}
strResponse=SetParamDao.SetJsonStringCode(sysLvlRequestJson); //1000:没有数据; 500:错误; 999:执行成功; 400:Josn解析格式不正确
return strResponse;
}
 

拼接JSONStringer出现的不正确的情况。的更多相关文章

  1. 65*24=1560<2175 对数据的统计支撑决策假设 历史数据正确的情况下,去安排今后的任务

    没有达到目标,原因不是时间投入不够,而是不用数据决策,不用数据调度定时脚本 [数据源情况统计]----># 近30天,日生效coin数目SELECT COUNT(DISTINCT coin) A ...

  2. HTMLCollection 对象详解,以及为什么循环获取的dom合集操作可能会出现下标不正确的情况?

    有时候循环dom合集,然后操作其中的某些dom之后,发现下标不正确了 比如我们要删除一个dom合集的时候: var selectDom = document.getElementsByClassNam ...

  3. 威联通212 http 在密码正确的情况下无法登录问题解决

    *现象: 1.putty 可以正常登录 2.smb可以正常登录 3.http 提示密码错误或无效 *解决办法: 1.通过putty   ssh登录到设备 2.执行以下代码 [~] # cp /etc/ ...

  4. 基于SURF特征的图像与视频拼接技术的研究和实现(一)

    基于SURF特征的图像与视频拼接技术的研究和实现(一)      一直有计划研究实时图像拼接,但是直到最近拜读西电2013年张亚娟的<基于SURF特征的图像与视频拼接技术的研究和实现>,条 ...

  5. 图像处理之拼接---图像拼接opencv

    基于SURF特征的图像与视频拼接技术的研究和实现(一)      一直有计划研究实时图像拼接,但是直到最近拜读西电2013年张亚娟的<基于SURF特征的图像与视频拼接技术的研究和实现>,条 ...

  6. C# String 字符拼接测试(“+”、string.Format、StringBuilder 比较)

    对于字符串的拼接自己一直有疑问,在何时该用什么方法来拼接?哪种方法更好.更适合. 几种方法 1.“+” 拼接字符串 现在在 C# 中,字符串进行拼接,可以直接用 “+” 而且可以直接用于数字类型的而不 ...

  7. 源码上看 .NET 中 StringBuilder 拼接字符串的实现

    前几天写了一篇StringBuilder与TextWriter二者之间区别的文章(链接).当时提了一句没有找到相关源码,于是随后有很多热心人士给出了相关的源码链接(链接),感谢大家.这几天抽了点时间查 ...

  8. JavaMail邮件发送不成功的那些坑人情况及分析说明

    [我的Segmentfault原文]https://segmentfault.com/a/1190000008030346 前言   JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有 ...

  9. StringBuilder String string.Concat 字符串拼接速度再议

    首先看测试代码: public class StringSpeedTest { "; public string StringAdd(int count) { string str = st ...

随机推荐

  1. Nginx和PHP-FPM的启动、重启、停止脚本分享(转)

    服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了.自己动手丰衣 ...

  2. C# 检测操作系统是否空闲,实现系统空闲后做一些操作

    public class CheckComputerFreeState { /// <summary> /// 创建结构体用于返回捕获时间 /// </summary> [St ...

  3. 杭赛.Triangle(数学推导)

    Triangle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  4. Mysql性能监控

    show processlist; show global variables like 'max_allowed_packet'; // QPS计算(每秒查询数)show global status ...

  5. [Effective JavaScript 笔记]第52条:数组字面量优于数组构造函数

    js的优雅很大程序要归功于程序中常见的构造块(Object,Function及Array)的简明的字面量语法.字面量是一种表示数组的优雅方法. var a=[1,2,3,5,7,8]; 也可以使用构造 ...

  6. JQuery入门

    JQuery入门 1 jQuery的概述 1.1 jQuery简介 jQuery是一个 JavaScript函数库,它是一个“写的更少,但做的更多”的轻量级 JavaScript 库.jQuery 极 ...

  7. 百度图片爬虫-python版

               self.browser=imitate_browser.BrowserBase()            self.chance=0            self.chanc ...

  8. C/C++程序终止时执行的函数——atexit()函数详解

    很多时候我们需要在程序退出的时候做一些诸如释放资源的操作,但程序退出的方式有很多种,比如main()函数运行结束.在程序的某个地方用exit()结束程序.用户通过Ctrl+C或Ctrl+break操作 ...

  9. Java RMI 框架

    RMI(即Remote Method Invoke 远程方法调用).在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定 ...

  10. 基础知识《五》---Java多线程的常见陷阱

    1.在构造函数中启动线程 我在很多代码中都看到这样的问题,在构造函数中启动一个线程,类似这样: public class A{ public A(){ this.x=1; this.y=2; this ...