『壹』 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 );