您的位置:首页 > 移动开发 > Objective-C

Android进步之十四:使用jackon的ObjectMapper的writeValueAsString方法可以把java对象转化成json字符串

2015-06-05 09:40 417 查看
如何把java对象转化成json字符串并打印出来呢?

这里就用到了jackon的jar包,使用writeValuesAsString的方法就可以把对角转化成json字符串。

下面通过一个demo,来仔细体会下如何去转化!

1:先建一个javaBean。

package com.sino.objectmapperdemo;

public class BaseObject {
private String userName;
private String userCode;
private double weight;
private int height;
private boolean sex;
private String[] array;
private BaseObject innerBaseObject;

public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
public String[] getArray() {
return array;
}
public void setArray(String[] array) {
this.array = array;
}
public BaseObject getInnerBaseObject(){
return innerBaseObject;
}
public void setInnerBaseObject(BaseObject innerBaseObject){
this.innerBaseObject = innerBaseObject;
}

}


2:在MainActivity中,对其进行赋值和转化操作,并打印出来。
package com.sino.objectmapperdemo;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
/**
* 使用jackon的ObjectMapper的writeValueAsString方法可以把java对象转化成json字符串
* 输出的结果是:{"array":["80","90","95"],"height":170,"innerBaseObject":{"array":["65","68","75"],
* "height":171,"innerBaseObject":null,"userCode":"2号","userName":"李四","weight":75.5,"sex":true},
* "userCode":"1号","userName":"张三","weight":65.5,"sex":true}
*
*/
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
ObjectMapper objectMapper = new ObjectMapper();
//		ArrayList list = new ArrayList();
//		Map<String,Object> map = new HashMap<String,Object>();
BaseObject object1 = new BaseObject();
object1.setUserName("张三");
object1.setUserCode("1号");
object1.setWeight(65.5);
object1.setHeight(170);
object1.setSex(true);
String[] score={"80","90","95"};
object1.setArray(score);

BaseObject object2=new BaseObject();
object2.setUserName("李四");
object2.setUserCode("2号");
object2.setWeight(75.5);
object2.setHeight(171);
object2.setSex(true);
score=new String[3];
score[0]="65";
score[1]="68";
score[2]="75";
object2.setArray(score);
//        object2成为object1的内部类
object1.setInnerBaseObject(object2);
//        list.add(object1);
//        map.put("baseObject", list);
//        把对象转化成json字符串
String json = objectMapper.writeValueAsString(object1);
System.out.println(json);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}


这里在lib下拷进了一个jar包,jackson-all-1.7.6.jar。把jar拷进去后,会自动Build path,如果没有执行此操作,则需要手动添加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: