问题描述:java web开发时,前台传了一个String数组,但是后台接收的时候是String类型, 那么就需要将String转为String数组。
首先要清楚有两种包都支持字符串转json数据,它们的语法并不相同。
这两个包分别是:org.json和json-lib;(如果是用json-lib的话还需要另外5个jar包)
1. 使用json-lib
import net.sf.json.JSONArray;
public class test {
public static void main(String[] args) {
String str = "[1,2,3,4]";
JSONArray jsonArr = JSONArray.fromObject(str);
System.out.println("str = "+str);
System.out.println("jsonArr = "+jsonArr);
String string[] = new String[jsonArr.size()];
for(int i=0;i<jsonArr.size();i++) {
string[i] = jsonArr.get(i).toString();
System.out.println("string["+i+"] = "+string[i]);
}
}
}运行结果:
str = [1,2,3,4]
jsonArr = [1,2,3,4]
string[0] = 1
string[1] = 2
string[2] = 3
string[3] = 4
使用JSONArray需要6个包
建议使用Maven引入依赖包
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
也可以手动下载导入 https://download.csdn.net/download/C_B_W_/18162392
2. 使用org.json
String str = "[1,2,3,4]";
JSONArray jsonArr = new JSONArray(str);
String string[] = new String[jsonArr.length()];
for(int i=0;i<jsonArr.length();i++) {
string[i] = jsonArr.get(i).toString();
}两种方法结果是一样的。
版权声明:本文为C_B_W_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。