我有这个JSON数据文件
[{"entityClass":"DefaultEntityClass","mac":["00:00:00:00:00:02"],"ipv4":[],"vlan":[],"attachmentPoint":[{"switchDPID":"00:00:00:00:00:00:00:02","port":1,"errorStatus":null}],"lastSeen":1398463052792}]
我希望得到“mac”。但我不知道我必须使用哪种数据类型,因为服务器 说它既不长也不是字符串值。这个“mac”是哪种数据类型?
我的代码:
try {
JSONArray arraydevice = new JSONArray(devicesJson);
JSONObject obj = arraydevice.getJSONObject(0);
long mac = obj.getLong("mac");
System.out.println("The mac address of the host is " + mac);
}
catch (JSONException e) { // TODO Auto-generated catch block
e.printStackTrace();
}
提前致谢
答案 0 :(得分:1)
["00:00:00:00:00:02"]
是一个包含一个元素的数组,该元素是一个字符串。
String mac = obj.getJSONArray("mac").getString(0);
虽然在尝试之前检查数组的.length()
可能是一个好主意,并且get
之外的任何内容都可能是空的。
答案 1 :(得分:0)
从JSON模式中,MAC地址看起来像一个字符串数组。但是,如果在服务器上定义了类结构,则可以使用它将JSON转换为对象。