① 如何把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包吧,我真不懂為什麼抗拒別人做的車輪