ECharts开发实战(1) ---- ECharts获取Java后台JSON数据,渲染显示图表

https://blog.csdn.net/chenchunlin526/article/details/78843426

借鉴:

package com.*.trs.patentsearch.controller;
 
import /* ******其他导入省略了***** */
import search.web.controller.BaseController;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.*.trs.patentsearch.util.CnipsunUtils;
 
 
/**
 * 检索结果控制类
 * @author chunlynn
 *
 */
@Controller
@RequestMapping("/patent")
public class SearchResultController extends BaseController {
    
    // 其他不相干代码省略了
 
	@Override
	protected void init() {
		viewPath = "/searchresult";
	}
 
	/**
	 * 初始化首页地图数据.
     * 这里是使用Gson来序列化Java数据为json格式
     
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	@RequestMapping("/initPatentMapData")
	public void initPatentMapData(HttpServletRequest request, HttpServletResponse response) throws 
           IOException {
		
		//请求cnipsun接口返回的检索数据。(这里是请求一个接口获得我需要的数据,当然在项目开发中,数据的获取也有直
        //       接在方法里序列化的,比如把一个List<Map<String, Object>>数据用Gson序列化)
		String resultJsonStr = CnipsunUtils.getSearchDatas("%", CN_SOURCES, WO_SOURCES, null, 1, 1);
		JsonObject allJsonObj = new JsonParser().parse(resultJsonStr).getAsJsonObject();
		JsonArray typesCnArray = allJsonObj.get("types").getAsJsonObject().get("cn").getAsJsonArray();
		Map<String, Object> responseMapData1 = new HashMap<String, Object>();
               
        //构造List数据,该数据是ECharts渲染的data所需要的
		List<Map<String, Object>> responseListData = new ArrayList<Map<String, Object>>();
		long cnPatentCount = 0L;
		long woPatentCount = 0L;
		for (JsonElement jsonElement : typesCnArray) {
			JsonObject cnJsonObject = jsonElement.getAsJsonObject();
			cnPatentCount += cnJsonObject.get("recordCount").getAsLong();
 
		}
		responseMapData1.put("name", "China");
		responseMapData1.put("value", cnPatentCount);
		responseListData.add(responseMapData1);
 
		JsonArray typesWoArray = allJsonObj.get("types").getAsJsonObject().get("wo").getAsJsonArray();
		for (JsonElement jsonElement : typesWoArray) {
			Map<String, Object> responseMapData2 = new HashMap<String, Object>();
			JsonObject woJsonObject = jsonElement.getAsJsonObject();
			woPatentCount = woJsonObject.get("recordCount").getAsLong();
			String name = woJsonObject.get("columnName").getAsString();
			responseMapData2.put("name", name);
			responseMapData2.put("value", woPatentCount);
			responseListData.add(responseMapData2);
		}
 
		//Gson类库,用来序列化List<Map<String, Object>>为json字符串
		Gson gson = new GsonBuilder().create();
        // toJson方法序列化List,得到json数据
		String resultJsonMapData = gson.toJson(responseListData);
 
        //将json数据写入到Response响应流中,到页面js的ajax的返回结果中取到该数据。BaseController中的方法
        //resultJsonMapData对应ajax中的success : function(data) 中的data
		writeJsonToResponseByGson(resultJsonMapData, response);
 
	}
 
	@Resource
	private ISearchResultService searchResultService;
 
	private Logger logger = LoggerFactory.getLogger(SearchResultController.class);
 
	private final static String CN_SOURCES = "fmzl_ft,syxx_ft,wgzl_ab,fmsq_ft,twpatent,hkpatent";
	private final static String WO_SOURCES = 
        "uspatent,krpatent,eppatent,frpatent,jppatent,gbpatent,"
        +"wopatent,chpatent,depatent,aspatent,gcpatent,rupatent";
}

猜你喜欢

转载自blog.csdn.net/luo_Json/article/details/87118855