Java如何快速构造JSON字符串

目标:根据key/value快速构造一个JSON字符串作为参数提交到web REST API服务上。

分别测试里阿里巴巴的FastJson和Google Gson,最终我采用了Google Gson来构造。

原因:

Google Gson来构造的JSON字符串里面,保留了传递参数key/value的顺序;

FastJson没有保留顺序(这个是符合JSON国际标准的,本身没有错误。是SugarCRM REST API有bug,要求传递过来的参数是按照它的顺序要求的)。

Google Gson代码片段:

import com.google.gson.Gson;
...
  LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
        map.put("f1","xxx");
        map.put("f2","xxxx");
        map.put("f3","xxxxx");
        Gson gson = new Gson();
        String json = gson.toJson(map);

Alibaba FastJson代码片段:

import com.alibaba.fastjson.JSONObject;

JSONObject jsonObject = new JSONObject();
        jsonObject.put("f1", "xxx");
        jsonObject.put("f2", "xxx");
        String json = jsonObject.toJSONString();

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 13:59:19

Java如何快速构造JSON字符串的相关文章

ios 解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为&lt;null&gt;无法保存在userDefault的问题

解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为<null>无法保存在userDefault. 打印下得到的字典数据: “username”=<null> 此时如果将字典保存到userDefault中会报错 所以需要遍历字典将其替换 for (NSString*s in [Dict1 allKeys]) { if ([Dict1[s] isEqual:[NSNull null]]) { [Dict1 setObject:@""

Java对象转换成Json字符串是无法获得对应字段名

问题: 代码中已经标注 @JSONField(name = "attrs") private String abc; public String getA() { return abc; } public void setA(String abc) { this.abc = abc; } 在发送消息的时候,会发现消息接受到的Json消息是abc对应的字段是a. 解决方法: 发现这个问题的时候,大概感觉应该是get和set函数名的为题,将其改成getAbc(),setAbc(),再发送消

java对象转化为json字符串

java对象转化为json字符串,关键代码如下: JSONObject json = JSONObject.fromObject(person); String resultStr = json.toString(); 转化后的字符串形如: {"age":"18","name":"天津犀利妞","password":"123456","sex":"女&quo

&lt;摘录&gt;Gson对Java嵌套对象和JSON字符串之间的转换

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识,请参考以下内容:http://json.org/json-zh.html 在服务器和客户端之间使用JSON数据格式进行通信,经常会涉及到JAVA对象和JSON字符串之间的转换.通常,我们可以使用一些JSON解析工具,例如:Gson,FastJson等.当然,我们也可以手动解析,只是会比较繁琐. 下面

JSONObject和JSONArray解析和构造json字符串

JSON-lib包(最关键的两个类分别是JSONObject和JSONArray)完成对json的构造和一些基本方法的使用. 二者区别: ①JSONObject构造的字符串是键值对形式(key:value),多个键值对间以英文逗号连接: ②JSONArray构造的字符串是数组形式([array1,array2,...]). 需要使用的包下载链接:http://pan.baidu.com/s/1o7MZ8X8 一.JSONObject的使用. (1)JSON字符串的两种构造方法: ①使用Java对

java多种方式解析json字符串

第一种:用net.sf.json硬解.缺点:要求字段名称和json字符串中的字段名一样,字段命名会违反驼峰规则,也不利于拓展: JSONArray jsonArray = JSONArray.fromObject(str);  JSONObject jObj = jsonArray.getJSONObject(0);  User user= (User)jObj.toBean(jObj,User.class); 第二种:用Gson解析json字符串.优点:写法简单,字段名称只要使用@Serial

java封装对象转json字符串

/** * Copyright (c) 2011-2015, James Zhan 詹波 ([email protected]). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

Java对象转换成Json字符串

使用gson-2.3.1.jar package org.acooly.thrift.demo.client; import java.util.ArrayList; import com.google.gson.Gson; public class json { public static void main(String[] args) {          ArrayList list=new ArrayList();     Student s1=new Student();     s

JAVA array,map 转 json 字符串

Java代码   public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } pu