相关jar包链接: https://pan.baidu.com/s/1EUcy40YP2OJnOQXFltVTZA 提取码: yzwh
关于字符串转json的相关代码@TOC
package day01;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Writer;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.swing.text.html.parser.Entity;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.util.JSONUtils;
public class Demo01 {
public static void main(String[] args) {
HttpURLConnection connection = null;
OutputStream dataout = null;
BufferedReader bf = null;
String BOUNDARY = "----WebKitFormBoundary2NYA7hQkjRHg5WJk";
String END_DATA = ("\r\n--" + BOUNDARY + "--\r\n");
String BOUNDARY_PREFIX = "--";
String NEW_LINE = "\r\n";
try {
URL url = new URL("https://xxxxxxx");//
connection = (HttpURLConnection)url.openConnection();
connection.setConnectTimeout(3000);
connection.setReadTimeout(3000);
connection.setDoOutput(true);// 设置连接输出流为true,默认false
connection.setDoInput(true);// 设置连接输入流为true
connection.setRequestMethod("POST");// 设置请求方式为post
connection.setUseCaches(false);// post请求缓存设为false
connection.setInstanceFollowRedirects(true);// 设置该HttpURLConnection实例是否自动执行重定向
connection.setRequestProperty("connection", "Keep-Alive");// 连接复用
connection.setRequestProperty("charset", "utf-8");
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + BOUNDARY);
connection.connect();// 建立连接
dataout = new DataOutputStream(connection.getOutputStream());// 创建输入输出流,用于往连接里面输出携带的参数
StringBuilder sb2 = new StringBuilder();
sb2.append(BOUNDARY_PREFIX);
sb2.append(BOUNDARY);
sb2.append(NEW_LINE);
sb2.append("Content-Disposition:form-data; name=\"参数名\"");
// 参数头设置完成后需要2个换行,才是内容
sb2.append(NEW_LINE);
sb2.append(NEW_LINE);
sb2.append("参数值");
sb2.append(NEW_LINE);
dataout.write(sb2.toString().getBytes());
// 读取文件上传到服务器
StringBuilder sb1 = new StringBuilder();
sb1.append(BOUNDARY_PREFIX);
sb1.append(BOUNDARY);
sb1.append(NEW_LINE);
sb1.append("Content-Disposition:form-data; name=\"file\";filename=\"" + 文件名 + "\"");//文件名必须带后缀
sb1.append(NEW_LINE);
sb1.append("Content-Type:application/octet-stream");
// 参数头设置完成后需要2个换行,才是内容
sb1.append(NEW_LINE);
sb1.append(NEW_LINE);
dataout.write(sb1.toString().getBytes());
dataout.write(文件字节);// 写文件字节
dataout.write(NEW_LINE.getBytes());
dataout.write(END_DATA.getBytes());
dataout.flush();
dataout.close();
bf = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));// 连接发起请求,处理服务器响应
String line;
StringBuilder result = new StringBuilder(); // 用来存储响应数据
// 循环读取流,若不到结尾处
while ((line = bf.readLine()) != null) {
result.append(line).append(System.getProperty("line.separator"));
}
bf.close();
connection.disconnect(); // 销毁连接
String str = result.toString();
System.out.println(str);
JSONObject jsonObject = JSONObject.fromObject(str);
Iterator<?> it = jsonObject.keys();
System.out.println(it.hasNext());
while(it.hasNext()) {
Object k = it.next();
Object v = jsonObject.get(k);
System.out.println(k+":"+v);
}
Object va = jsonObject.get(map类型的key);
JSONObject jsonObject2 = JSONObject.fromObject(va);
Iterator<?> it2 = jsonObject2.keys();
while(it2.hasNext()) {
Object k = it2.next();
Object v = jsonObject2.get(k);
System.out.println(k+":"+v);
}
Object va2 = jsonObject2.get(map类型的key);
JSONArray ja = JSONArray.fromObject(va2);//数组类型
Iterator it3 = ja.iterator();
while(it3.hasNext()) {
Object dict = it3.next();
System.out.println(dict);
JSONObject jsonObject3 = JSONObject.fromObject(dict);
Iterator<?> it4 = jsonObject3.keys();
while(it4.hasNext()) {
Object k = it4.next();
Object v = jsonObject3.get(k);
System.out.println(k+":"+v);
}
Object va3 = jsonObject3.get(map类型的key);
JSONArray ja2 = JSONArray.fromObject(va3);//数组类型
Iterator it5 = ja2.iterator();
while(it5.hasNext()) {
Object dict2 = it5.next();
System.out.println(dict2);
JSONObject jsonObject4 = JSONObject.fromObject(dict2);
Iterator<?> it6 = jsonObject4.keys();
while(it6.hasNext()) {
Object k = it6.next();
Object v = jsonObject4.get(k);
System.out.println(k+":"+v);
}
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}