目录
java.lang.Integer cannot be cast to java.lang.Long异常
处理Json格式的字符串
涉及到的包:
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONArray;
@Test
public void jsonTest() {
String json =
"{\"type\":\"page\",\"body\":[{\"type\":\"form\",\"title\":\"表单\",\"body\":[{\"label\":\"姓名\",\"type\":\"input-text\",\"name\":\"username\",\"id\":\"u:944f7077db66\"},{\"type\":\"input-text\",\"label\":\"家庭地址\",\"name\":\"address\",\"id\":\"u:74671ce2139b\"}],\"id\":\"u:88cd5fb1e72d\",\"api\":{\"url\":\"http://127.0.0.1:8099/common/modelPageTest8/appConfig/15/add\",\"method\":\"post\"},\"autoFocus\":true}]}";
JSONObject jsonObject = JSONObject.parseObject(json);
String type = jsonObject.getString("type");
System.out.println("type=" + type);
JSONArray bodies = jsonObject.getJSONArray("body");
for (Object body : bodies) {
JSONObject bodyJson = (JSONObject) body;
String title = bodyJson.getString("title");
System.out.println(title);
JSONArray bodiesInner = bodyJson.getJSONArray("body");
for (Object o : bodiesInner) {
JSONObject innerJson = (JSONObject) o;
String label = innerJson.getString("label");
String name = innerJson.getString("name");
System.out.println("label=" + label + ",name=" + name);
}
}
}
查看变量的类型
body.getClass().toString()
java.lang.Integer cannot be cast to java.lang.Long异常
Integer类型转Long类型: Long.valueOf(body.toString())
例子:
String json ="{\n" +
" \"appId\": 121,\n" +
" \"conditions\": \"{\\\"type\\\":\\\"page\\\",\\\"body\\\":[{\\\"type\\\":\\\"form\\\",\\\"title\\\":\\\"表单\\\",\\\"body\\\":[{\\\"label\\\":\\\"姓名\\\",\\\"type\\\":\\\"input-text\\\",\\\"name\\\":\\\"username\\\",\\\"id\\\":\\\"u:944f7077db66\\\"},{\\\"type\\\":\\\"input-text\\\",\\\"label\\\":\\\"家庭地址\\\",\\\"name\\\":\\\"address\\\",\\\"id\\\":\\\"u:74671ce2139b\\\"}],\\\"id\\\":\\\"u:88cd5fb1e72d\\\",\\\"api\\\":{\\\"url\\\":\\\"http://127.0.0.1:8099/common/modelPageTest8/appConfig/15/add\\\",\\\"method\\\":\\\"post\\\"},\\\"autoFocus\\\":true}]}\",\n" +
" \"modelIds\": [154, 124],\n" +
" \"ruleName\": \"测试规则\",\n" +
" \"ruleType\": \"globalRule\",\n" +
" \"status\": false\n" +
"}";
JSONObject jsonObject = JSONObject.parseObject(json);
JSONArray bodies = jsonObject.getJSONArray("modelIds");
String modelIds = jsonObject.getString("modelIds");
for (Object body : bodies) {
JSONObject bodyJson = (JSONObject) body;
// 查看body的类型
System.out.println(body.getClass().toString());
List<Long> a = new LinkedList<>();
a.add(154l);
a.add(122l);
// 强制Integer类型转为Long类型
Long b = Long.valueOf(body.toString());
// 判断List里是否含有某元素
if (a.contains(b)) System.out.println("ojbk");
// 判断两数值是否相等(==涉及到判断地址,可能会出错)
if (a.equals(b)) System.out.println("okk");
}