详解java生成json字符串的方法

例1:将map对象添加一次元素(包括字符串对、数组),转换成json对象一次。

代码:

package com.json;

//这是使用org.json的程序:
import java.util.HashMap;
import java.util.Map;

import org.json.JSONException;
import org.json.JSONObject;

public class jsontest {

public static void main(String[] args) throws JSONException {
String json = "{'name':'reiz'}";
JSONObject jsonObj = new JSONObject(json);
String name = jsonObj.getString("name");

System.out.println(jsonObj);

jsonObj.put("initial", name.substring(0, 1).toUpperCase());

String[] likes = new String[] { "JavaScript", "Skiing", "Apple Pie" };
jsonObj.put("likes", likes);

System.out.println(jsonObj);

Map <String, String> ingredients = new HashMap <String, String>();
ingredients.put("apples", "3kg");
ingredients.put("sugar", "1kg");
ingredients.put("pastry", "2.4kg");
ingredients.put("bestEaten", "outdoors");
jsonObj.put("ingredients", ingredients);
System.out.println(jsonObj);

}
}

运行结果:

{"name":"reiz"}
{"initial":"R","likes":["JavaScript","Skiing","Apple Pie"],"name":"reiz"}
{"ingredients":{"apples":"3kg","pastry":"2.4kg","bestEaten":"outdoors","sugar":"1kg"},"initial":"R","likes":["JavaScript","Skiing","Apple Pie"],"name":"reiz"}

(需要用到的包可在官网下载:http://www.json.org/java/index.html

例2:list转换成json的三种参数形式。

import java.util.ArrayList;
import java.util.List;

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

public class listToJson {
  public static void main(String[] args) {

  boolean[] boolArray = new boolean[]{true,false,true};
JSONArray jsonArray1 = JSONArray.fromObject( boolArray );
System.out.println( jsonArray1 );
// prints [true,false,true]

List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
System.out.println( jsonArray2 );
// prints ["first","second"]

JSONArray jsonArray3 = JSONArray.fromObject( "['json','is','easy']" );
System.out.println( jsonArray3 );
// prints ["json","is","easy"]
  }
}

运行结果:

[true,false,true]
["first","second"]
["json","is","easy"]

例3:json转换成list和map。

package com.json;

import java.util.Collection;
import java.util.Map;
import java.util.Map.Entry;

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

public class jsonToListandMap {

  public static void main(String[] args) {
    // TODO Auto-generated method stub

    String listStr = "[\"apple\",\"orange\"]";
    Collection<String> strlist = JSONArray.toCollection(JSONArray.fromObject(listStr));
    for (String str : strlist) {
     System.out.println(str);
    }

    String mapStr = "{\"age\":30,\"name\":\"Michael\",\"baby\":[\"Lucy\",\"Lily\"]}";
    Map<String, Object> map = (Map) JSONObject.toBean(JSONObject
     .fromObject(mapStr), Map.class);
    for (Entry<String, Object> entry : map.entrySet()) {
     System.out.println(entry.getKey() + " " + entry.getValue());
    }

  }

}

运行结果:

apple

orange

name Michael
age 30

baby [Lucy, Lily]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java json不生成null或者空字符串属性(详解)

    大家平时用java对象转json字符串.null或者空字符串属性是不需要生成到json字符串里面的. 如下方式生成,没有使用的属性也会生成json字符串属性. JSONArray jsonarray = JSONArray.fromObject(ecmMessageMap.values()); msgObj = jsonarray.toString(); {"actionType":"","clientIp":"","

  • js判断输入字符串是否为空、空格、null的方法总结

    判断字符串是否为空 var strings = ''; if (string.length == 0) { alert('不能为空'); } 判断字符串是否为"空"字符即用户输入了空格 var strings = ' '; if (strings.replace(/(^s*)|(s*$)/g, "").length ==0) { alert('不能为空'); } 判断输入字符串是否为空或者全部都是空格 function isNull( str ){ if ( str

  • js判断为空Null与字符串为空简写方法

    最近突然发现自己写的JavaScript代码比较臃肿,所以开始研究JavaScript的简写方法.这样一来,可以让我们的JavaScript代码看起来比较清爽,同时也可以提高我们的技术.那么判断为空怎么简写呢? 下面就是有关判断为空的简写方法. 代码如下 复制代码 代码如下: if (variable1 !== null || variable1 !== undefined || variable1 !== '') { var variable2 = variable1; } 上面的意思是说如果

  • 详解java生成json字符串的方法

    例1:将map对象添加一次元素(包括字符串对.数组),转换成json对象一次. 代码: package com.json; //这是使用org.json的程序: import java.util.HashMap; import java.util.Map; import org.json.JSONException; import org.json.JSONObject; public class jsontest { public static void main(String[] args)

  • 详解Java生成PDF文档方法

    最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料.整理之后,发现有如下几个框架可以实现这个功能. 1. 开源框架支持 iText,生成PDF文档,还支持将XML.Html文件转化为PDF文件: Apache PDFBox,生成.合并PDF文档: docx4j,生成docx.pptx.xlsx文档,支持转换为PDF格式. 比较: iText开源协议为AGPL,而其他两个框架协议均为Apache License v2.0. 使用PDFBox生成PDF就像画图

  • 详解JAVA生成将图片存入数据库的sql语句实现方法

    详解JAVA生成将图片存入数据库的sql语句实现方法 实现代码: 注释很清楚,不在重述~ public class Image2Hex { public static void main(String[] args) { try{ //存放图片的文件夹 File list = new File("d:/qmx"); File[] lists = list.listFiles(); String name; //生成的语句存放文件 PrintWriter pw = new PrintWr

  • 详解Java中JSON数据的生成与解析

    一.什么是JSON JSON: JavaScript Object Notation JS对象简谱,是一种类似于XML的语言.相比于XML,它更小.更快.更易解析.主要用于项目前端和Server的网络数据传输. 二.JSON的语法 对象 一个对象,由一个大括号表示{},{}中通过一个个的键值对来描述对象的属性 注意: 键与值之间使用冒号连接,多个键值对之间使用逗号分隔. 键值对的键,应使用引号引住(通常Java解析时,键不使用引号会报错,而JS能正确解析):键值对的值,可以是JS中的任意数据类型

  • 实例详解esp8266解析json数据的方法

    #include <ArduinoJson.h> void setup() { Serial.begin(115200); Serial.println("这里用于测试json数据的解析"); // DynamicJsonDocument对象 定义时候我们需要定义一个大小信息+复制大小 const size_t capacity = JSON_OBJECT_SIZE(2) + 30; DynamicJsonDocument doc(capacity); // 要解析的jso

  • 详解Java 缺失的特性扩展方法

    目录 什么是扩展方法 传统写法: 使用 Stream 写法: 在 Java 中怎么实现扩展方法 准备条件 编写扩展方法 数组扩展方法 扩展静态方法 建议 什么是扩展方法 扩展方法,就是能够向现有类型直接“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改现有类型.调用扩展方法的时候,与调用在类型中实际定义的方法相比没有明显的差异. 为什么需要扩展方法 考虑要实现这样的功能:从 Redis 取出包含多个商品ID的字符串后(每个商品ID使用英文逗号分隔),先对商品ID进行去重(并能够维持元

  • 详解java.lang.reflect.Modifier.isInterface()方法

    详解java.lang.reflect.Modifier.isInterface()方法 java.lang.reflect.Modifier.isInterface(int mod)方法判断如果给定mod参数包含final修饰符,则返回true,否则返回false. 声明 以下是java.lang.reflect.Modifier.isInterface()方法的声明. public static boolean isInterface(int mod) 参数 mod - 一组修饰符. 返回值

  • 详解Java关于时间格式化的方法

    一般从数据库获取的时间或日期时间格式化为date或者datetime,为了方便前端渲染,API接口返回的时候需要对日期进行格式化转换,通常会用到 SimpleDateFormat 工具处理. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String time = dateFormat.format(new Date()); 如果一个DTO类里面有很多关于时间字段需要格式化,就会降低开发效率,产生很多

  • 详解Java如何改变字符串中的字符

    今天做某度的笔试题遇到一个编程题需要用到字符串中的字符的即时改变.题中给出的一个String字符串.绞尽脑汁试图使用构建一个新的String的方式来做,而后发觉十分麻烦. 做题的时候只觉得StringBuilder/StringBuffer(由于这两个类的方法基本完全相同,下面只说其中一个,另一个也一样)中会有操作某字符的方法,想了半天没什么印象,所以这个题应该是直接挂了. 做完之后查了一下API.果然发现一个方法,如下图所示: cStringBuilder.setCharAt() 可以实现很方

  • 详解Java中Method的Invoke方法

    在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到Method,这时去调用父类的对象也会报错.虽然这是很符合多态的现象,也符合java的动态绑定规范,但还是想弄懂java是如何实现的,就学习了下Method的源代码.  Method的invoke方法 1.先检查 AccessibleObject的override属性是否为true. Accessib

随机推荐