Skip to content

Commit f9a7c06

Browse files
committed
Server:解决DemoFunction.isContain在array的值里面的元素类型和value的值的类型不同时return false,导致isContain((List<Long>) [82001,...], (Integer) 82001) == false及类似问题
1 parent a83acb3 commit f9a7c06

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

APIJSON-Java-Server/APIJSONDemo/src/main/java/apijson/demo/server/DemoFunction.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
package apijson.demo.server;
1616

17+
import java.util.List;
18+
1719
import com.alibaba.fastjson.JSONArray;
1820
import com.alibaba.fastjson.JSONObject;
1921

@@ -133,7 +135,12 @@ public boolean isObjectEmpty(@NotNull JSONObject request, String object) {
133135
*/
134136
@Override
135137
public boolean isContain(@NotNull JSONObject request, String array, String value) {
136-
return BaseModel.isContain(request.getJSONArray(array), request.get(value));
138+
//解决isContain((List<Long>) [82001,...], (Integer) 82001) == false及类似问题, list元素可能是从数据库查到的bigint类型的值
139+
// return BaseModel.isContain(request.getJSONArray(array), request.get(value));
140+
141+
//不用准确的的 request.getString(value).getClass() ,因为Long值转Integer崩溃,而且转成一种类型本身就和字符串对比效果一样了。
142+
List<String> list = com.alibaba.fastjson.JSON.parseArray(request.getString(array), String.class);
143+
return list != null && list.contains(request.getString(value));
137144
}
138145
/**判断object是否包含key
139146
* @param request

0 commit comments

Comments
 (0)