㈠ 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數據