① 如何把map转成json字符串
1、如图所示新建一个demo作为测试。
② java如何返回json格式
publicstaticvoidreturnJson(HttpServletResponseresponse,CharSequencetext)
throwsException{
response.setContentType("application/json;charset=UTF-8");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
response.getWriter().write(text.toString());
}
其中text这个是JSONObject或者Map
response.setContentType("application/json;charset=UTF-8");这个表示以json格式返回
前台需要eval接收到的版数据,就是权json格式了
③ 如何将Map转化为json字符串
把map转成json的步骤:姿郑
1、需要一些jar包:json-lib-2.4-jdk15.jar、ezmorph-1.0.6.jar、commons-logging.jar、commons-lang.jar、commons-collections.jar、commons-beanutils.jar。
2、把Map转换成json, 要使用jsonObject对象:
Map<String, Object> map = new HashMap<String, Object>();
map.put("userId", 1001);
map.put("userName"迹握颂, "皮凳张三");
map.put("userSex", "男");
JSONObject jsonObject = JSONObject.fromObject(map);
System.out.println(jsonObject);
④ java中jsonobject和jsonarray的区别
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import java.util.*;
public class JavaTest {
public static void main(String[] args){
JSONObject obj=new JSONObject();
obj.put("derek","23");
obj.put("dad", "49");
obj.put("mom", "45");
System.out.println("通过构造器的方式创建的JSONObject对象:"+obj);
Map<string,string> map=new LinkedHashMap<>();
map.put("derek","23");
map.put("dad", "49");
map.put("mom", "45");
System.out.println("通过fromObject方法将map对象转换为JSONObject对象:"+JSONObject.fromObject(map));
JSONArray arr=new JSONArray();
arr.add(0,"derek");
arr.add(1,"dad");
arr.add(2,"mom");
System.out.println("通过构造器的方式创建的JSONArray:"+arr);
ArrayList list=new ArrayList<>();
list.add("derek");
list.add("dad");
list.add("mom");
System.out.println("通过fromObject方法将Arraylist对象转换为JSONArray对象:"+JSONArray.fromObject(list));
System.out.println("将HashMap对象通过fromObject方法转换为JSONArray对象"+JSONArray.fromObject(map));
String str="{\"derek\":23,\"dad\":49,\"mom\":45}";
System.out.println("解析之后的JSON对象:"+JSONObject.fromObject(str));
//遍历输出
Iterator it=obj.keys();
while(it.hasNext()){
String key=it.next();
System.out.println(key+":"+obj.get(key));
}
}
}
运行结果如下:
通过构造器的方式创建的JSONObject对象:{"derek":"23","dad":"49","mom":"45"}
通过fromObject方法将map对象转换为JSONObject对象:{"derek":"23","dad":"49","mom":"45"}
通过构造器的方式创建的JSONArray:["derek","dad","mom"]
通过fromObject方法将Arraylist对象转换为JSONArray对象:["derek","dad","mom"]
将HashMap对象通过fromObject方法转换为JSONArray对象[{"derek":"23","dad":"49","mom":"45"}]
解析之后的JSON对象:{"derek":23,"dad":49,"mom":45}
derek:23
dad:49
mom:45
Java List是个集合接口,只要是集合类接口都会有个“迭代子”( Iterator ),利用这个迭代子,就可以对list内存的一组对象进行操作。 所有要想操作这个list内存的东西,就首先要得到此迭代子的实例:Iterator it=l.iterator();
用add()方法即可添加新的成员对象,他可以添加的仅仅只能为对象,不能添加基本数据类型,容器还对应get(),remove()方法来获取和删除数据成员
实例1.
import java.util.*;
public class ArrayListTest{
public static void main(String dd[]){
//new了一个存储list
List l=new ArrayList();
//因为Collection framework只能存储对象所以new封装类
l.add(new Integer(1));
l.add(new Integer(2));
l.add(new Integer(3));
l.add(new Integer(4));
Iterator it=l.iterator();
//hasNext是取值取的是当前值.他的运算过程是判断下个是否有值如果有继续.
while(it.hasNext()){
//设it.next封装类,调用Integer的intValue方法返回值为int赋给i;
int i=((Integer)it.next()).intValue();
System.out.println("Element in list is : "+i);}}}
ArrayList list = new ArrayList() 和List<String> list = new ArrayList<String>() 的区别??
1、存储内容的区别
ArrayList 可以存储任何类型的项
List<类型> 只可以存储指定类型的项
2、使用是否方便
List<>比ArrayList使用方便
因为在使用ArrayList内部的值时,必须强制转换才行
相信使用过ArrayList的都深有体会,因为存放在ArrayList里的值都转换成了Object类型
3、出现的时间
ArrayList比List<>出现的时间早
List<>是C#2.0时出现的,且是其最强大的功能之一
4、所在命名空间的区别
ArrayList的命名空间是System.Collections
List<>的命名空间是System.Collections.Generic
其中Generic是泛型的意思,使用List<>也就是在使用泛型技术
5、编程中的使用频率
大多数情况下 ArrayList可以废弃不用,毕竟其是C#2.0之前的技术了
这一点从在Visual Studio中 新建一个类时便可以看出
新建一个类时,其默认使用的命名空间有
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
显然没有System.Collections,因为ArrayList的使用的确不方便
⑤ 如何构建json串,并将map转为jsonObject对象的三种方式(scala)
众所周知,kafka中存储的数据是经过BASE64加密后的jsonObject,因此从kafka中读取的数据经过base64解码,得到的是json串,利用JSONObect的方法可以对json串进行解析,拿到对应的数据。那么要如何将scala对象或者java对象转换为JsonObject对象或JSONObject对象呢?(注意:JsonObject对象和JSONObject对象不同,调用的API也不一样)
三种转换方式依赖的包源码都是用JAVA编写,所以构建Map对象时完全使用java对象,不会发生错误。构建过程如下:
三种将java对象转换为jsonObject对象的开源包有:
1、google提供的Genson是一个完全的Java和JSON转换的类库,提供了全面的数据绑定、流操作等。基于Apache 2.0协议发布。转换结果为
JsonObject对象。
使用需要先导入Jar包:import com.google.gson.{Gson, JsonParser}
引入依赖:这里选用版本为:2.2.4,具体版本可以根据业务需求选择。
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
2、Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
导入jar包:import com.alibaba.fastjson.JSON
引入依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.8</version>
</dependency>
3、net.sf.json-lib方式
导入jar包:import net.sf.json.JSONObject
引入依赖:
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib-ext-spring</artifactId>
<version>1.0.2</version>
</dependency>
⑥ java kindeditor 图片上传返回json的问题
对象转换成json对象时出现死循环,你可在把map转换时加一个配置,如下
JsonConfig jc=new JsonConfig();
jc.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
//如果用到hibeinate的话可以加以下这句,如果map里面有不想输出的属性,把属性名也加到下面,可提高效率,以下这句可选,意思是过滤掉不需要转换成json对象的属性
jc.setExcludes(new String[]{"handler","hibernateLazyInitializer"});
JSONObject json = JSONObject.fromObject(map,jc);
然后加JSONObject json = JSONObject.fromObject(map,jc);这句啊,单纯用SONObject json = JSONObject.fromObject(map);是直接把map对象的所有属性都转换到json对象中,加个JSONConfig是为了能可选可控的把map对象转换成json对象,
savefile是一个File对象,你map.put("url", savefile);改成map.put("url", savefile.getPath());反正不要把一个File对象put到map里就OK了
⑦ java中将map转成json时,如何将map中的整型数字在转成json后,变成字符串,而不是整型。
好像没有什么特别的办法,可能是我才疏学浅,
我知道的两种方式:
map是键值对存在,那么类型都是固定的,我们可以再申请个map<String ,String>遍历替换原来的map再转换成json字符串
字符串替换,用正则添加双引号:
publicvoidtestJson(){
Map<String,Integer>map=newHashMap<String,Integer>();
map.put("aaa",111);
Stringjson=JSON.toJSONString(map);
Stringjson1=json.replaceAll(":",":"");
json1=json1.replaceAll("}",""}");
System.out.println(json);
System.out.println(json1);
}
⑧ Map类型获取json数组,如何提取值
我们需要先把json字符串转化为net.sf.json.JSONObject对象,java中这样就可以完成json字符串到Map的转换了。
1.将数组转换为JSON:String[] arr = {"asd","dfgd","asd","234"};JSONArray jsonarray = JSONArray.fromObject(arr);System.out.println(jsonarray);
⑨ java中如何将数据封装为JSON包
直接输出就可以了
String jsondata = "{'a':" + a + ",'b':" + b + ",'c':" + c + "}";
如果是字符串就加上单引号,如
String jsondata = "{'a':'" + a + "','b':'" + b + "','c':'" + c + "'}";
如果abc是数组
String jsondata = "{'a':[" + a[0] + "," + a[1] + "," + a[2] + "],'b':...}";
如果abc是对象就相对复杂一点
String jsondata = "{'a':{'a_paramStr':'" + a.paramStr + "','a_pramaInt'}:a.pramaInt},'b':...}";
当然,如果对象的成员变量很多,可以可以通过对象遍历的方式输出,还有包含子对象、子子对象的情况
总结如下
格式:{'数据名':数据值}
数据值为数字时,直接输出
数据值为字符串时,用单引号包含值,'数据值'
数据值为数组时,用中括号包含,[数据值1,数据值2,...]
数据值为对象时,用大括号包含,{'成员名1':成员数值1,'成员名2':{'成员2对象的成员1','成员2对象的成员1值'},...}
数据与数据之间用逗号隔开,以上
一句话,如果传送数据很简单可以自己输出;如果很复杂,乖乖用三方json包吧,我真不懂为什么抗拒别人做的车轮