2013-08-27 52 views
0

我有以下的JSON字符串:的Java解析JSON成花車

String json = {"z":4.78944,"y":-0.07604187,"x":11.841576}; 

我想對它進行解析,並創建:

float x = 4.78944; 
float y = -0.07604187; 
float z = 11.841576; 

我怎樣才能做到這一點在Java中與輸入變量String json

+1

首先,該字符串分配將不會編譯。其次,你有沒有努力研究一些比較常見的json解析庫,如Gson和Jackson? – AdamSpurgin

回答

1

如果你想要一個面向對象模型的反序列化,請看看Google-Gson here

String json = "{\"z\":4.78944,\"y\":-0.07604187,\"x\":11.841576}"; 
Coordonate cord = new Gson().fromJson(json, Coordonate.class); 
1

使用的JSONObject:http://www.json.org/javadoc/org/json/JSONObject.html

此後,使用getDouble函數訪問密鑰x,y和z的雙精度值。

+1

這看起來合適嗎? 'float x =(float)json.getDouble(「x」);'它編譯,不知道它是否會工作。 – JDS

+0

@JDS - 你試過了嗎? –

+0

它應該。我之前使用過JSONObject去反序列化一個有效的JSON字符串,然後訪問其中的屬性。 – Vivek

0

除了Vivec的回答用:

創建一個模型Coordonate.java

public class Coordonate { 
    private float x; 
    private float y; 
    private float z; 

    public float getX() { return x; } 
    public float getY() { return y; } 
    public float getZ() { return z; } 
} 

反序列化JSON字符串 http://www.json.org/javadoc/org/json/JSONObject.html

雖然沒有getFloat()在JSONObject獲取它作爲一個字符串,並解析它int o漂浮爲我工作罰款。:

Float.parseFloat(myJsonObject.getString("x"));