㈠ java json返回值问题
你可以用自JsonObject这个类相关方法,具体如下:
把Map转换成json, 要使用jsonObject对象:
Map<String,Object>map=newHashMap<String,Object>();
map.put("userId",1001);
map.put("userName","张三");
map.put("userSex","男");
JSONObjectjsonObject=JSONObject.fromObject(map);
System.out.println(jsonObject);
把List转换成json, 要使用jsonObject对象:
List<UserInfo>list=newArrayList<UserInfo>();
UserInfouser=newUserInfo(1001,"张三");
list.add(user);
list.add(user);
list.add(user);
JSONArrayjsonArray=JSONArray.fromObject(list);
System.out.println(jsonArray);
㈡ java 过滤json中不想要的属性
没有跳过,那是匿名内部类,你把断点打在apply方法中就可以看到他的执行过程了。
㈢ java用正则表达式截取json多余的字符串
需要用正则表达式吗?你直接用“}”分割字符串,再把前面的字符串加个“}”不就完了么版?我不知道权是否还有其他的约束,如果单从你的举例来看,完全没有必要用正则表达式
String instr="{\"name\"\:\"zhang\",\"pass\'\:\'123\'}1245";
String [] str=instr.split("}");
String oustr=str[0] + "}";
忘了“}”要不要转义了,如果需要你加上就是了
㈣ java json取集合某个元素
首先你的这个json串就有问题,修改下才能解析,解析方法如下
JSONObject log=jsonObject.getJSONObject("第一级Object");
JSONArray jsonArray = log.getJSONArray("Object中的array");
JSONObject pages = jsonArray.getJSONObject(0); //从jsonArray中解析第一个Object
JSONObject pageTimings=pages.getJSONObject("继续解析object");
String onContentLoad=pageTimings.getString("onContentLoad"); //得到想要的值
把{}大括号扩起来的看成是object,如果有名字就根据名字来解析,如果没名字就根据序号来解析,上面的代码两种情况均有涉及,请注意参考与更改变量名。[]扩起来的看成数组,用getArray解析,同样可以用名字或序号解析
㈤ java : json 过滤不合法字符的工具包工具类工具
json中没有自带的过滤不合法字符的工具类,需要用户自己编写。
将源数据中的'、回"、\\、空格、换行答等都替换成转义符,这样你拼接的json数据就是正常的,显示出来格式和数据库中的一样。
function valueReplace(v) {
if (v.indexOf("\"") != -1) {
v = v.toString().replace(new RegExp('(["\"])', 'g'), "\\\"");
}
else if (v.indexOf("\\") != -1)
v = v.toString().replace(new RegExp("([\\\\])", 'g'), "\\\\");
return v;
}
㈥ 求高手 java 解析json数据
我用袭fastjson实现的,参考一下
package test;
import java.util.ArrayList;
import com.alibaba.fastjson.JSON;
public class TestJson {
public static void main (String[]args){
ArrayList al=new ArrayList();
al.add("str1");
al.add("str2");
al.add("str3");
al.add("str4");
al.add("str5");
String jsonString = JSON.toJSONString(al);
System.out.println(jsonString);
ArrayList list = (ArrayList) JSON.parseArray(jsonString, String.class); //String表示数据类型
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
㈦ java怎么去除JSON数组的重复值
对最佳回答进行修改,假设原始Json数组是这样的
原始JSONArry:[{"Value":"15153129877","Key":"09770985-9869-11e7-9c0d-fa163ef28f43"},{"Value":"15153129877","Key":"09770985-9869-11e7-9c0d-fa163ef28f43"}]
工具类如下:
/**
*根据Key去重复
*@paramarray
*/
(JSONArrayarray){
JSONArrayarrayTemp=newJSONArray();
intnum=0;
for(inti=0;i<array.size();i++){
if(num==0){
arrayTemp.add(array.get(i));
}else{
intnumJ=0;
for(intj=0;j<arrayTemp.size();j++){
JSONObjectnewJsonObjectI=(JSONObject)array.get(i);
JSONObjectnewJsonObjectJ=(JSONObject)arrayTemp.get(j);
Stringindex_idI=newJsonObjectI.get("Key").toString();
StringvalueI=newJsonObjectI.get("Value").toString();
Stringindex_idJ=newJsonObjectJ.get("Key").toString();
if(index_idI.equals(index_idJ)){
arrayTemp.remove(j);
JSONObjectnewObject=newJSONObject();
newObject.put("Key",index_idI);
newObject.put("Value",valueI);
arrayTemp.add(newObject);
break;
}
numJ++;
}
if(numJ-1==arrayTemp.size()-1){
arrayTemp.add(array.get(i));
}
}
num++;
}
returnarrayTemp;
}
处理结果
数据处理后JSONArry:[{"Value":"15153129877","Key":"09770985-9869-11e7-9c0d-fa163ef28f43"}]
完毕!!!!
㈧ jackson解析java对象为json字符串时,怎么用注解的方式动态过滤属性
@XmlRootElement(name="student")
public class Student {
private int id;
private String name;
get 和 set 方法自己内写容
}
㈨ 关于Java处理JSON字符串的新手问题
第一点:你既然使用了net.sf.json.JSONObject对象引入了jar包直接使用其的fromObject将对象转为字符串效率更高,出错的概率也更小一些。
第二点:对象中套对象的方式也很简单,如这样
public static void main(String[] args) {
Map map1 = new HashMap();
Map map2 = new HashMap();
Map map3 = new HashMap();
map3.put("value","Male");
map2.put("gender",map3);
map1.put("attributes",map2);
JSONObject json = JSONObject.fromObject(map1);
System.out.println(json);
}
㈩ java中怎么过滤没有用的字段返回到前台的数据
1 不用框架
传统方式用jdbc读取数据库数据到resultset,
a 通过json工具内:将resultset中数据写到容list里,通过json工具(如fastjson)转换成json字符串,返回到前台
b 直接通过resultset吧数据拼写成json格式字符串写到前台
2 框架
如struts2+spring, jdbctemple支持将读取结果直接返回给list, 将result类型设置生json即可,前台可直接获取json数据