<一> Google Gson 转换Json字符串和对象(对象中还有内嵌对象,Map,数组)

     可以直接执行如下类中的main方法将json字符串转换为相应对象后并打印出转换后的对象:

 

import java.util.List;
import java.util.Map;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

/**
 * 
 * @author Josh Wang(Sheng)
 *
 * @email  josh_wang23@hotmail.com
 */
public class JsonBean {
	private String a;
	private List<B> b; // array
	private C c;
	
	private Map<String, String> d;
	

	public class B {
		private String b1;
		private String b2;
		public String getB1() {
			return b1;
		}
		public void setB1(String b1) {
			this.b1 = b1;
		}
		public String getB2() {
			return b2;
		}
		public void setB2(String b2) {
			this.b2 = b2;
		}
		
		
	}

	public class C {
		public String c1;
		public String c2;
	}
	

	public String getA() {
		return a;
	}



	public void setA(String a) {
		this.a = a;
	}



	public List<B> getB() {
		return b;
	}



	public void setB(List<B> b) {
		this.b = b;
	}



	public C getC() {
		return c;
	}



	public void setC(C c) {
		this.c = c;
	}



	public Map<String, String> getD() {
		return d;
	}



	public void setD(Map<String, String> d) {
		this.d = d;
	}
	
	@Override
	public String toString() {
		return "JsonBean [a=" + a + ", b=" + b.get(0).getB2() + ", c=" + c.c2 + ", d=" + d.get("myKey") +"]";
	}
	
	public static void main(String[] args) {
		String json = "{\"a\":\"100\",\"b\":[{\"b1\":\"b_value1\",\"b2\":\"b_value2\"},{\"b1\":\"b_value1\",\"b2\":\"b_value2\"}],"
				+ "\"c\":{\"c1\":\"c_value1\",\"c2\":\"c_value2\"}, \"d\": {\"myKey\":\"myValue\"} }";
		
		GsonBuilder builder = new GsonBuilder();
		// builder.setDateFormat(DateUtils.MIDDLE_LINE_TIMESTAMP);
		// builder.registerTypeAdapter(NucleonEventType.class, new NucleonEventTypeSerializer());
		
		Gson gson = builder.create();
		
		System.out.println(gson.fromJson(json, JsonBean.class));
	}

	
}

 

执行结果为:

JsonBean [a=100, b=b_value2, c=c_value2, d=myValue]

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以把Java数组转换JSON数组字符串,也可以把JSON数组字符串转换成Java数组,但是JSON数组字符串不能直接转换JSON数组对象,需要使用JSON库进行解析。 在Java,可以使用Gson、Jackson等库将Java数组转换JSON数组字符串,示例如下: ```java import com.google.gson.Gson; public class Main { public static void main(String[] args) { String[] arr = {"hello", "world"}; Gson gson = new Gson(); String jsonArrayString = gson.toJson(arr); System.out.println(jsonArrayString); // ["hello","world"] } } ``` 同样的,也可以将JSON数组字符串转换成Java数组,示例如下: ```java import com.google.gson.Gson; public class Main { public static void main(String[] args) { String jsonArrayString = "[\"hello\",\"world\"]"; Gson gson = new Gson(); String[] arr = gson.fromJson(jsonArrayString, String[].class); System.out.println(arr[0]); // hello System.out.println(arr[1]); // world } } ``` 但是,如果要将JSON数组字符串转换JSON数组对象,则需要使用JSON库进行解析,示例如下: ```java import org.json.JSONArray; public class Main { public static void main(String[] args) { String jsonArrayString = "[\"hello\",\"world\"]"; JSONArray jsonArray = new JSONArray(jsonArrayString); System.out.println(jsonArray.getString(0)); // hello System.out.println(jsonArray.getString(1)); // world } } ``` 在这个示例,我们使用了`org.json.JSONArray`类来解析JSON数组字符串,并将其转换JSON数组对象。需要注意的是,这JSON数组对象不是Java数组对象,而是JSON的一种数据类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值