我创建了一个从JSON URL解析数据的方法。
数据被放入列表中,我希望以表格形式显示,我可以。
我有getter和setter方法来获取/设置信息但是当我对Timestamp和deviceId使用get方法时,它返回一个值。但是当我使用get方法进行测量和测量时,它返回null / 0。
这是我正在解析的JSON URL;
{
"status": "success",
"records": [
{
"timestamp": 1381735967866,
"deviceId": "288",
"temperature": 3304500
},
{
"timestamp": 1381735997866,
"deviceId": "288",
"temperature": 3304500
},
{
"timestamp": 1381736027866,
"deviceId": "288",
"temperature": 3304500
}
这只是一个片段,但基本上就是它。
以下是用于划分信息的java代码;
public class Records
{
private long timestamp;
private int deviceId;
private String measuring;
private int measurment;
public long getTimestamp()
{
return timestamp;
}
public int getDeviceId()
{
return deviceId;
}
public String getMeasuring()
{
return measuring;
}
public int getMeasurment()
{
return measurment;
}
public void setTimestamp(long timestamp)
{
this.timestamp = timestamp;
}
public void setDeviceId(int deviceId)
{
this.deviceId = deviceId;
}
public void setMeasuring(String measuring)
{
this.measuring = measuring;
}
public void setMeasurment(int measurment)
{
this.measurment = measurment;
}
public String toString()
{
return String.format("Timestamp: %d\tDevice ID: %d\t%s: %d", timestamp, deviceId, measuring, measurment);
}
}
我调用字符串测量而不是温度,因为还有其他JSON URL我也在解析,它们具有不同的温度值(负载,位移等)但是deviceId和Timestamp是相同的。
以下是我打印结果的方式;
Gson gson = new Gson();
Elements elements = gson.fromJson(jsonString, Elements.class);
long previousTimestamp = 01;
long result;
for(Records records : elements.getRecords())
{
System.out.println(records + "\n");
}
打印结果是这样的;
时间戳:1381746686550设备ID:288 null:0
时间戳:1381746716550设备ID:288 null:0
时间戳:1381746746550设备ID:288 null:0
时间戳:1381746776550设备ID:288 null:0
时间戳:1381746806550设备ID:288 null:0
时间戳:1381746836550设备ID:288 null:0
时间戳和deviceId打印输出,但测量和测量没有。
当我调用温度URL时,我希望的是,温度将代替null,而int值代替0.相同的位移,负载等
是否有人有任何信息或帮助,这将是伟大的,谢谢
答案 0 :(得分:0)
{
"timestamp": 1381736027866,
"deviceId": "288",
"temperature": 3304500
}
您的json没有measuring
和measurment
的数据。这就是你无法在输出中看到它们的原因。由于measuring
是一个字符串,因此在未填充时会得到null
(如果未初始化字符串,则为默认值),而measurment
为int
,则会得到0
默认值{
"timestamp": 1381736027866,
"deviceId": "288",
"temperature": 3304500,
"measuring": "someMeasureValue",
"measurment": 10
}
。
如果你的json有这两个元素,就像这样
Timestamp: 1381746686550 Device ID: 288 someMeasureValue: 10
然后它会在对象中填充这些值,输出就是
{{1}}