『壹』 java中處理jsON的開源工具都有些什麼那個比較好用
阿里巴巴有個第三方的包,google也有第三方包,google的好用一點。反正我在androidstudio用阿里巴巴的失敗,換了google的成就OK了,當時還找錯找了很久
『貳』 android怎麼將javabean轉換成json
前提條件是javaBean必須有getter和setter方法而且,必須有無參的構造方法
package com.cn.parse_json;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.lang.reflect.Field;
import org.json.JSONObject;
import android.os.Environment;
import android.util.Log;
import android.widget.Toast;
public class ParseJson2BeanUtils {
public static <T> T parseJson2Bean(JSONObject object,Class<T> clazz ) throws Exception{
FileInputStream fis = new FileInputStream("/mnt/sdcard/json.txt");
int len = fis.available();
byte[] buffer = new byte[len];
fis.read(buffer);
object = new JSONObject(new String(buffer));
T newInstance = null;
Field[] fields = clazz.getFields();
//只要保證clazz有一個無參的public構造方法就不可能發生異常
try {
newInstance = clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
for(int i = 0;i< fields.length;i++){
String name = fields[i].getName();
//不可能發生的異常
try {
String jsonName = name.replaceFirst(name.substring(0, 1), name.substring(0, 1).toUpperCase());
if(object.has(jsonName)){
if(jsonName.equals("ResultCode")){
fields[i].set(newInstance, object.getInt(jsonName));
}else{
fields[i].set(newInstance, object.getString(jsonName));
}
Log.i("name", name+"****");
}
//Log.i("name", jsonName+":"+object.has(jsonName)+object.getString(jsonName));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return newInstance;
}
}
『叄』 fastjson java bean轉json時,如果屬性為number類型,且為空,輸出json時忽略展示
你好,很高興回答你的問題。
你試試把欄位類型從int改為Integer。
看看能不能達到你想要的效果。
如果有幫助到你,請點擊採納。
『肆』 json和java對象相互轉換的插件工具有哪些
json使用前必須先引入json的相關jar包,我這里用的是json-lib-2.4-jdk15.jar這個版本的jar包。如果大家沒有的話可以直接在我這里下載:點擊打開鏈接
導入完jar就可以正式開始開發了,這里先看一個對象轉json的例子:
對象的具體內容如下:
[java] view plain
package myapi.json.demo.entity;
import java.util.List;
public class MyBean {
private String Id;
private String Name;
private List CardNum;
public MyBean(String id, String name, List cardNum) {
super();
Id = id;
Name = name;
CardNum = cardNum;
}
『伍』 java怎麼讀取json格式的數據
你好,Java讀取json數據格式,你只需要使用JsonStore 等等工具包即可進行便捷的讀取了。代碼比較簡單,通俗易懂,具體JsonStore可以網路一下詳細信息。
『陸』 java中一個包含bean屬性的list集合 如何轉換成JSON
fastjson轉化如下:來
public class Userinfo {
private String username;
private String password;
private Address address;
//省略相應的源get/set方法
}
//json轉化單個對象
Userinfo userinfo = JSON.parseObject(jsonString, Userinfo.class);
//json轉化為多個對象
List<Userinfo> list = JSON.parseArray(jsonString, Userinfo.class);
對象轉化為JSON
JSON json = JSON.toJSON(userinfo);
『柒』 如何用java遞歸生成帶children的json串
代碼很簡單就兩個類一個TreeNode.java 和一個測試類Test.java(可直接運行)
在運行之前需要以下公共類:
commons-beanutils.jar
commons-collections.jar
commons-lang.jar
commons-logging.jar
ezmorph-1.0.6.jar
json-lib-2.3-jdk15.jar
package com.test;
import java.util.ArrayList;
public class TreeNode {
private String id;
private String pid;
private String name;
private String remark;
private ArrayList<TreeNode> children = new ArrayList<TreeNode>();
public TreeNode(String id, String pid, String name, String remark) {
this.id = id;
this.pid = pid;
this.name = name;
this.remark = remark;
}
public void add(TreeNode node) {//遞歸添加節點
if ("0".equals(node.pid)) {
this.children.add(node);
} else if (node.pid.equals(this.id)) {
this.children.add(node);
} else {
for (TreeNode tmp_node : children) {
tmp_node.add(node);
}
}
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public ArrayList<TreeNode> getChildren() {
return children;
}
public void setChildren(ArrayList<TreeNode> children) {
this.children = children;
}
}
測試類Test.java
package com.test;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Test {
public static void main(String[] args) {
TreeNode root = new TreeNode("0", "0", "000000", "00JJJ");
TreeNode node = null;
node = new TreeNode("1", "0", "111111", "11AAA");
root.add(node);
node = new TreeNode("2", "0", "222222", "11BBB");
root.add(node);
node = new TreeNode("3", "2", "333333", "11CCC");
root.add(node);
// JSONObject obj = JSONObject.fromObject(root);//有根
JSONArray obj = JSONArray.fromObject(root.getChildren());// 不要根
System.out.println(obj.toString());
}
}
『捌』 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包吧,我真不懂為什麼抗拒別人做的車輪
『玖』 請問怎樣將有java.sql.Date屬性的Bean轉換成json字元串,再把json字元串轉換回Bean請大俠指教!!!
你需要用到第三方的lib文件: json-lib。
http://json-lib.sourceforge.net/usage.html
From Beans to JSON:
class MyBean{
private String name = "json";
private int pojoId = 1;
private char[] options = new char[]{'a','f'};
private String func1 = "function(i){ return this.options[i]; }";
private JSONFunction func2 = new JSONFunction(new String[]{"i"},"return this.options[i];");
// getters & setters
...
}
JSONObject jsonObject = JSONObject.fromObject( new MyBean() );
System.out.println( jsonObject );
/* prints
{"name":"json","pojoId":1,"options":["a","f"],
"func1":function(i){ return this.options[i];},
"func2":function(i){ return this.options[i];}}
*/
在你這里就是:JSONObject jsonObject = JSONObject.fromObject(user );
From JSON to Beans:
String json = "{bool:true,integer:1,string:\"json\"}";
JSONObject jsonObject = JSONObject.fromObject( json );
BeanA bean = (BeanA) JSONObject.toBean( jsonObject, BeanA.class );
在你這里就是:
JSONObject jsonObject = JSONObject.fromObject( json );
User bean = (User) JSONObject.toBean( jsonObject, User.class );