我有以下需要上传的json:
[{"key":"value","key1":"value1"},
[{"innerkey":"innervalue","filename":"name"},{"innerkey":"innervalue","filename":"name"}]]
Run Code Online (Sandbox Code Playgroud)
JsonArray中的两个内部键有两个需要上传的文件.
我正在使用okhttp multipart上传它们.
正常字段添加为
multipart.addFormDataPart(key, value);
Run Code Online (Sandbox Code Playgroud)
并添加一个文件
multipart.addFormDataPart("filename", "image.jpeg", RequestBody.create(MediaType.parse("image/jpeg"), new File(path)));
Run Code Online (Sandbox Code Playgroud)
我之前通过将json转换为hashmap并使用for循环添加部件来上传非嵌套的json
MultipartBody.Builder multipart = new MultipartBody.Builder();
for (Map.Entry<String, String> entry : data.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
if(!key.equals("filePath")){
multipart.addFormDataPart(key, value);
}else{
String filename = "";
String type = MyUtility.getMimeType(key);
filename = key.substring(key.lastIndexOf("/") + 1);
multipart.addFormDataPart("fileName", filename, RequestBody.create(MediaType.parse(type), new File(key)));
}
}
Run Code Online (Sandbox Code Playgroud)
新结构似乎很难处理我该怎么办?