一、问题描述:
在程序中调用一个参数为json数组的远程接口的传参问题
// 控制台打印异常
com.alibaba.fastjson.JSONException: field null expect '[', but int, pos 5, line 1, column 616900
二、原因分析:
对传入的参数做了如下修改(行不通)
String id = "["+result.getId()+"]";
测试
// 控制台打印异常
field null expect '[', but string, pos 9, line 1, column 10"[16903]"
三、解决方案:
将Long类型的参数转化为json数组进行传递
List<Long> longList = new ArrayList<>();
longList.add(result.getId());
ObjectMapper objectMapper = new ObjectMapper();
String jsonArray = null;
try {
jsonArray = objectMapper.writeValueAsString(longList);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
userFeign.enableBillBatch(jsonArray,null);
注:另一个问题
由于这个远程接口是直接提供给前端使用的,操作成功后会返回给前端一个excel
但是在程序内部执行时,这种格式无法传递,也不需要传递
解决方案:重新写了一个接口,去除了返回excel的逻辑