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. 【集训队作业2018】矩阵玩小凹 NTT

    题目大意 有一个 \(n\times m\) 的矩阵 \(A\),每个元素都是 \([0,1]\) 内的等概率随机实数,记 \(s_i=\sum_{j=1}^mA_{i,j}\),求 \(\lfloo ...

  2. 升级 pip 超时解决方案

    安装的时候发现报错如下, 提示需要升级pip 按照指引进行升级, 同样的超时 使用 豆瓣源进行安装 pip python -m pip install --upgrade pip -ihttp://p ...

  3. [源码分析]StringBuilder

    [源码分析]StringBuilder StringBuilder是继承自AbstractStringBuilder的. 这里附上另外两篇文章的连接: AbstractStringBuilder :  ...

  4. 【ARC 063F】Snuke's Coloring 2

    Description There is a rectangle in the xy-plane, with its lower left corner at (0,0) and its upper ...

  5. 转化.vdi到.vmdk

    OracleVirtualBox转化.vdi到.vmdk E:\Genymotion-deployed\CentOS_7_64>"D:/Program Files/Oracle/Vir ...

  6. vue组件中data为什么必须是个函数

    <body> <div id="app"> <counter></counter> </div> <templat ...

  7. luogu P5319 [BJOI2019]奥术神杖

    传送门 要求的东西带个根号,这玩意叫几何平均数,说到平均数,我们就能想到算术平均数(就是一般意义下的平均数),而这个东西是一堆数之积开根号,所以如果每个数取对数,那么乘法会变成加法,开根号变成除法,所 ...

  8. Thrax-构建基于语法的语言模型工具

    安装 http://www.openfst.org/twiki/bin/view/GRM/ThraxQuickTour http://cslu.ogi.edu/~sproatr/Courses/Tex ...

  9. Linux 下的各种环境安装

    Linux 下的各种环境安装 1.安装 python Centos7  安装  python 2.7 : https://www.cnblogs.com/Jomini/p/10507077.html ...

  10. 423 重温Java Script and jQuery 葵花宝典 Bootstrap

    Bootstrap需要引的三个文件 <link rel="stylesheet" href="css/bootstrap.css">    表格元素 ...