JAVA接口接收.json文件并解析成json字符串

最近在写一个接口,请求方传过来的是一个json文件(如下图这种传递格式),以前接口接收的都是json字符串,用String接收即可,这种貌似得解析一下,下面把解析过程写一下,欢迎交流
在这里插入图片描述
相对于json字符串,文件格式能传递的字节数更大

代码:

请求方法传递过来的文件,用HttpServletRequest 接收

 @Override
    public Map<String, Object>  ocrBack1( HttpServletRequest requestStr) {
        try {
            MultipartHttpServletRequest requestStr1 = (MultipartHttpServletRequest) requestStr;
            Iterator<String> fileNames = requestStr1.getFileNames();
            while (fileNames.hasNext()) {
                String next = fileNames.next();
                List<MultipartFile> files = requestStr1.getFiles(next);
                if (files.size() > 0) {
                    Iterator<MultipartFile> iterator = files.iterator();
                    while (iterator.hasNext()) {
                        MultipartFile next1 = iterator.next();//获取到文件
                        InputStream inputStream = next1.getInputStream();
                        String s = ReadFile((FileInputStream) inputStream);
                        JSONArray jsonArray = JSONArray.fromObject(s);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

文件流转化为json串:

public String ReadFile(FileInputStream fileInputStream){
        BufferedReader reader = null;
        String laststr = "";
        try{
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
            reader = new BufferedReader(inputStreamReader);
            String tempString = null;
            while((tempString = reader.readLine()) != null){
                laststr += tempString;
            }
            reader.close();
        }catch(IOException e){
            e.printStackTrace();
        }finally{
            if(reader != null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return laststr;
    }

还有一种读取本地xxx.json文件并解析的,其实就是把本地文件转化成流,然后调用这个工具类即可

public class Util {

public String ReadFile(String Path){
BufferedReader reader = null;
String laststr = "";
try{
FileInputStream fileInputStream = new FileInputStream(Path);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
reader = new BufferedReader(inputStreamReader);
String tempString = null;
while((tempString = reader.readLine()) != null){
laststr += tempString;
}
reader.close();
}catch(IOException e){
e.printStackTrace();
}finally{
if(reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return laststr;
}

}2)Test.java:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

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

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
String JsonContext = new Util().ReadFile("D:\\test\\apkinfo.json");
JSONArray jsonArray = JSONArray.fromObject(JsonContext);
int size = jsonArray.size();
System.out.println("Size: " + size);
for(int  i = 0; i < size; i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
System.out.println("[" + i + "]name=" + jsonObject.get("name"));
System.out.println("[" + i + "]package_name=" + jsonObject.get("package_name"));
System.out.println("[" + i + "]check_version=" + jsonObject.get("check_version"));
}
}

}
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值