0

我创建了一个从 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 空值:0

时间戳:1381746716550 设备 ID:288 空值:0

时间戳:1381746746550 设备 ID:288 空值:0

时间戳:1381746776550 设备 ID:288 空值:0

时间戳:1381746806550 设备 ID:288 空值:0

时间戳:1381746836550 设备 ID:288 空值:0

Timestamp 和 deviceId 打印出来,但测量和测量没有。

当我调用温度 URL 时,我希望得到什么,温度将代替 null,int 值代替 0。位移、负载等也是如此

有没有人知道或者帮忙啊,太好了,谢谢

4

1 回答 1

0
{
        "timestamp": 1381736027866,
        "deviceId": "288",
        "temperature": 3304500
}

您的 json 没有measuring和的数据measurment。这就是您无法在输出中看到它们的原因。因为measuring是一个字符串,null所以当它没有被填充时,你会得到一个(如果一个字符串没有被初始化,则默认值),因为measurment是一个int,你会得到一个的默认值0

如果你的 json 有这两个元素,像这样

{
        "timestamp": 1381736027866,
        "deviceId": "288",
        "temperature": 3304500,
        "measuring": "someMeasureValue",
        "measurment": 10
}

然后它将在对象中填充这些值,并且输出将是

Timestamp: 1381746686550 Device ID: 288 someMeasureValue: 10
于 2013-10-14T11:38:38.367 回答