字符串转换成JSON的两种常用方法


阿里的 特别方便:
你给的json串是数组,要用 JSON.parseArray 转换成数组来获取,
JSONArray json = JSON.parseArray(str);
你给的是json串是字符串,要用
JSONObject jso = JSON.parseObject(json)处理


--------------------------------------------------------------------------

第一个,比较正常的,在阿里jar之前:

package com.lyt.test.json;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class StringToJson {
	public static void main(String[] args) {
		JSONArray a = new JSONArray();
		a.add("{'id':'1','companyName':'美分期1'}");
		a.add("{'id':'2','companyName':'美分期2'}");
		a.add("{'id':'3','companyName':'美分期3'}");
		System.out.println(a.toString());
		String str = "[{'id':'1','companyName':'美分期1'},{'id':'2','companyName':'美分期2'},{'id':'3','companyName':'美分期3'}]" ;  // 一个未转化的字符串
		JSONArray json = JSONArray.fromObject(str); // 首先把字符串转成 JSONArray  对象
		if(json.size()>0){
		  for(int i=0;i
		
			
				${json.channelStore }
			
			${json.path }
		
	


这个是一个小demo,可以把数据放入到model中 然后在jso页面接收并使用

第二个就是利用阿里巴巴的jar来进行转换

package org.com.lyt.jsonutil;  
  
import com.alibaba.fastjson.JSON;  
import com.alibaba.fastjson.JSONArray;  
import com.alibaba.fastjson.JSONObject;  
  
/**  
 * @Author:liyintao  
 * @Description:  
 * @Date:下午 5:50 2017/9/12 0012.  
 */  
public class StringToFastJson {  
    public static void main(String[] args) {  
        new StringToFastJson().stringTofastJson1();  
    }  
    public static void stringTofastJson() {  
        String json = "{\"name\":\"刘德华\",\"age\":35,\"some\":[{\"k1\":\"v1\",\"k2\":\"v2\"},{\"k3\":\"v3\",\"k4\":\"v4\"}]}";  
        JSONObject jso = JSON.parseObject(json);//json字符串转换成jsonobject对象  
        System.out.println("初始jsonObject:\n"+jso+"\n");  
        // [{"k1":"v1","k2":"v2"},{"k3":"v3","k4":"v4"}]  
        JSONArray jsarr = jso.getJSONArray("some");//jsonobject对象取得some对应的jsonarray数组  
        System.out.println("jsonObject里面的jsonarray:\n"+jsarr+"\n");  
        JSONObject ao = jsarr.getJSONObject(0);//jsonarray对象通过getjsonobjext(index)方法取得数组里面的jsonobject对象  
        System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject:\n"+ao+"\n");  
        String vString = ao.getString("k1");//jsonobject对象通过key直接取得String的值  
        System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject里的键值对对k1取值:\n"+vString+"\n");  
    }  
  
    public static void stringTofastJson1() {  
        String str = "[{'id':'1','companyName':'美分期1'},{'id':'2','companyName':'美分期2'},{'id':'3','companyName':'美分期3'}]" ;  // 一个未转化的字符串  
        // json字符串转换成JSONArray数组  
        JSONArray json = JSON.parseArray(str);  
        System.out.println("初始jsonObject:\n"+json+"\n");  
        if(json.size()>0){  
            for(int i=0;i


阿里的 特别方便:
你给的json串是数组,要用 JSON.parseArray 转换成数组来获取,
JSONArray json = JSON.parseArray(str);
你给的是json串是字符串,要用
JSONObject jso = JSON.parseObject(json)处理


你可能感兴趣的:(问题集锦,Java基础)