public static  String concatJson(String[] keys,String[] values,String[] alreadyJsonKeys){
if(keys==null|| values==null)
return null;
if(keys.length!=values.length)
return "Json转换出错:key与values长度不相等";
StringBuilder sb=new StringBuilder();
sb.append("{");
for(int i=0;i<keys.length;i++){
Object object=values[i];
if(object==null){
sb.append("\""+ keys[i] +"\":null,");
}else{
if(alreadyJsonKeys!=null
&&CollectionsUtils.indexOf(alreadyJsonKeys,keys[i])>=0){
sb.append("\""+ keys[i] +"\":" + object + ",");
}else{
sb.append("\""+ keys[i] +"\":\"" + object + "\",");
}
}
} if(sb.charAt(sb.length()-1)==','){
sb.deleteCharAt(sb.length()-1);
}
sb.append("}");
return sb.toString();
}
public static <T> String concatJson(List<T> list,boolean alreadyElementJson){
if(list==null)
return null;
StringBuilder sb=new StringBuilder();
sb.append("[");
int size=list.size();
for(int i=0; i<size;i++){
T object=list.get(i);
if(object==null){
sb.append("null");
}
if(object instanceof Date){
sb.append("\"" + object + "\",");
}else if(object instanceof String){
if(alreadyElementJson){ //已经是json字符串,不加引号
sb.append(object.toString()+",");
}else{
sb.append("\"" + object + "\",");
}
}else if (object instanceof Boolean){
sb.append(object.toString() + ",");
}else{
sb.append(objectToJson(object) + ",");
}
}
if(sb.charAt(sb.length()-1)==','){
sb.deleteCharAt(sb.length()-1);
}
sb.append("]");
return sb.toString();
} public static<T> String concatJson(List<T> jsonObjects){
if(jsonObjects==null){
return null;
}
if(jsonObjects.size()==0){
return null;
}
StringBuilder sb=new StringBuilder();
sb.append("[");
int size=jsonObjects.size();
for(int i=0;i<size;i++){
sb.append(objectToJson(jsonObjects.get(i))+",");
}
if(sb.charAt(sb.length()-1)==','){
sb.deleteCharAt(sb.length()-1);
}
sb.append("]");
return sb.toString();
}
public static <T> String objectToJson(T t){
if(t==null)
return null;
if(t instanceof List){
return concatJson((List)t,false);
}else if(t instanceof String ||t instanceof Date){
return "\""+t.toString()+"\"";
}else if( t instanceof Integer || t instanceof Long || t instanceof Double
|| t instanceof BigDecimal || t instanceof Float
|| t instanceof Boolean) {
return t.toString() ; //字符串
}
return t.toString();
}

  

Javal连接字符串为Json的更多相关文章

  1. ASP.NET 5探险(1):Azure中配置连接字符串、独立项目执行EF7数据迁移

    (此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注.) 题记:我开始把ASP.NET 5用于生产系统开发已经有1个多月了,也填了一些坑积累了一些经验,从今天开始会陆陆续 ...

  2. asp.net core 系列 22 EF(连接字符串,连接复原,DbContext)

    一.连接字符串 在上二篇中,ASP.NET Core 应用程序连接字符串是写死在ConfigureServices代码中,下面介绍通过配置来实现.连接字符串可以存储在 appsettings.json ...

  3. 微信通过openID发送消息/后台post、get提交并接收数据 C# .NET 配置404,500等错误信息 连接字符串

    微信通过openID发送消息/后台post.get提交并接收数据   控制器:下面是post发送消息(微信不支持从前台发送数据,之前试过,报错,需要跨域,跨域的问题解决后还不行,最后发现之后后端提交 ...

  4. ASP.NET web.config中的连接字符串

    在ASP.NET的web.config中,可以用两种方式来写连接字符串的配置. <configuration> <appSettings> <add key=" ...

  5. 使用配置文件定义ADO.NET 的连接字符串

    最近一直在学习ADO.NET的相关知识,发现要对数据库操作的地方都要先创建一个连接字符串: string constr ="Data Source=(local);Initial Catal ...

  6. 用SQL Server(T-SQL)获取连接字符串

    一般情况下,C# 连接SQL Server的字符串可以直接按照说明文档直接手动写出来,或者也可以参考大名鼎鼎的connectionstrings手动拼写 但是如果你已经连接到SQL Server也可以 ...

  7. 如何识别一个字符串是否Json格式

    前言: 距离上一篇文章,又过去一个多月了,近些时间,工作依旧很忙碌,除了管理方面的事,代码方面主要折腾三个事: 1:开发框架(一整套基于配置型的开发体系框架) 2:CYQ.Data 数据层框架(持续的 ...

  8. ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB

    您创建的MovieDBContext类负责处理连接到数据库,并将Movie对象映射到数据库记录的任务中.你可能会问一个问题,如何指定它将连接到数据库? 实际上,确实没有指定要使用的数据库,Entity ...

  9. 《Entity Framework 6 Recipes》中文翻译系列 (38) ------ 第七章 使用对象服务之动态创建连接字符串和从数据库读取模型

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第七章 使用对象服务 本章篇幅适中,对真实应用中的常见问题提供了切实可行的解决方案. ...

随机推荐

  1. VSCode的Markdown All in One插件,列表选项卡只有3个空格的解决方案

    Q: 在win10中,列表选项卡只有3个空格,非列表是正常的4个空格: A: 设置Markdown All in One的list.indentationSize: Thank You For yzh ...

  2. js实现一个长页面中的图片懒加载即滚动到其位置才加载

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. EC20 R2.1

    1.模块开机成功前WAKEUP_IN. NET_MODE. BT_CTS. COEX_UART_TX(背部焊盘). COEX_UART_RX(背部焊盘) 和WLAN_EN(背部焊盘)引脚禁止上拉. 2 ...

  4. 异常值处理outlier

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  5. Apache Hadoop 2.9.2 的快照管理

    Apache Hadoop 2.9.2 的快照管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 快照相当于对目录做一个备份.并不会立即复制所有文件,而是指向同一个文件.当写入发生 ...

  6. 贝叶斯A/B测试 - 一种计算两种概率分布差异性的方法过程

    1. 控制变量 0x1:控制变量主要思想 科学中对于多因素(多变量)的问题,常常采用控制因素(变量)的方法,吧多因素的问题变成多个单因素的问题.每一次只改变其中的某一个因素,而控制其余几个因素不变,从 ...

  7. 010-3 Socket协议ProtocolType

    ProtocolType成员 成员名称 说明 Ggp 网关到网关协议. Icmp Internet 控制消息协议. IcmpV6 IPv6 的 Internet 控制消息协议. Idp Interne ...

  8. Oracle DB Day02(SQL)

    --数据库下表一般都是从1开始,例如字符串等 SELECT *FROM employees --字符串连接CONCAT() ,CONCAT(CONCAT(EMPLOYEE_ID,','),SALARY ...

  9. 一个关于kindle固件修改的问题

    手头有一个序列号为B05A开头的日版kpw2,默认没有中文界面.之前看过@5201992318q 大神的帖子,原因是系统langpicker.conf文件中有一段判断序列号并删除语言的代码,于是我萌发 ...

  10. python中opencv的安装

    1.得到opencv的安装包: 2.把安装包中的cv.py, cv2.pd放到一个文件夹中,并把这个文件夹放到D:\Anaconda2\Lib\site-packages中: 3.添加新的变量,变量名 ...