关于字符串转json的相关代码

相关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();
	}
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_35694833

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值