请找到以下代码,我尝试将对象的JSONArray设置为List<type>
类型的public class SalesOrder {
public static SalesOrder fromJSONObject(JSONObject o)
{
SalesOrder sa=new SalesOrder();
sa.setOrderNumber(o.getString("order_number"));
sa.setCustomerName(o.getString("customer_name"));
sa.setOrder_files(o.getJSONArray("order_files"));
return sa;
}
private String orderNumber;
private String customerName;
List<OrderFile> order_files;
public List<OrderFile> getOrder_files() {
return order_files;
}
public void setOrder_files(List<OrderFile> order_files) {
this.order_files = order_files;
}
}
方法。
order_files
但是我无法设置值,它会抛出错误
SalesOrder类型中的方法setOrder_files(List)是 不适用于参数(JSONArray)。
请找到我的order_files":[
{
"file_name":"05_06_Field_lenghts_Requirements.pdf",
"file_type":"Invoice",
"file_id":"59c9ede7c3c867a6b269e111"
},
{
"file_name":"ideas.JPG",
"file_type":"Packaging List",
"file_id":"59c9ee65c3c867a6b269e113"
}
]
JSONArray
public class OrderFile {
String file_id;
String file_name;
String file_type;
public String getFile_id() {
return file_id;
}
public void setFile_id(String file_id) {
this.file_id = file_id;
}
public String getFile_name() {
return file_name;
}
public void setFile_name(String file_name) {
this.file_name = file_name;
}
public String getFile_type() {
return file_type;
}
public void setFile_type(String file_type) {
this.file_type = file_type;
}
}
请查找我的订单文件POJO类
sa.setOrder_files()
基于收到的评论 - 我试图将JSONArray转换为ArrayList并尝试将参数作为参数传递给 List<OrderFile> filelist=new ArrayList<OrderFile>();
JSONArray filearray= o.getJSONArray("order_files");
if(filearray!=null)
{
for(int i=0;i<filearray.length();i++)
{
filelist.add(filearray.getString(i));
}
}
sa.setOrder_files(filelist);
"statusCode":404
但是在arraylist中添加项目时会出现错误。
错误:类型List中的方法add(OrderFile)不适用于参数(String)
答案 0 :(得分:1)
sa.setOrder_files(o.getJSONArray("order_files"));
这一行是问题,你的函数setOrder_files需要一个List而不是JSON数组。
您应该更改函数的参数或发送列表而不是JSON数组。
public class SalesOrder {
public static SalesOrder fromJSONObject(JSONObject o)
{
SalesOrder sa=new SalesOrder();
sa.setOrderNumber(o.getString("order_number"));
sa.setCustomerName(o.getString("customer_name"));
sa.setOrder_files(o.getJSONArray("order_files"));
return sa;
}
private String orderNumber;
private String customerName;
JSONArray order_files;
public JSONArray getOrder_files() {
return order_files;
}
public void setOrder_files(JSONArray order_files) {
this.order_files = order_files;
}
}