2017-03-21 32 views
0
數據

我作爲其中的關鍵,就是要動態的,即沒有硬編碼爲FB和SB數據鍵表示下面的信息比特 - 它可能是AB,CD,EF在另一個實例(即密鑰的數量和名稱都不是靜態的)。最初的版本我有如下:正確的方法來表示JSON

{"FB":"psOVGY55Rnkr3QHntSCQ==","SB":"oOUaYrIxAVixf5zfslGwvcy44g=="} 

我認爲它需要是這樣的:

[{"name: "FB", "value": "psOVGY55Rnkr3QHntSCQ==",}] 

我將不勝感激反饋(將是巨大的,如果任何停機/關閉,選民回答問題除了關閉/向下投票)。由於

更新

我詢問的原因是因爲目前的「關鍵」傳遞是動態的,不是靜態的,所以我不能創建屬性FB,SB,因爲這些值將每封郵件的改變POJO 。

+1

對我來說,完全取決於你將如何使用它。從JSON的角度來看,這並不重要。使用哪一個更容易編碼。 –

+0

@MattS一個人如何拿到鑰匙名和JSON反序列化過程及其相應的值(比方說使用Java /傑克遜),當它的結構爲{「FB」:「psOVGY55Rnkr3QHntSCQ ==」,「SB」:「oOUaYrIxAVixf5zfslGwvcy44g ==」 }即沒有鍵,即{「key」:「FB」,「value」:「psovGY55Rnkr3QHntSCQ ==」} - 如果您需要爲反序列化創建POJO並且當前鍵是動態的,那麼明確定義什麼是屬性名稱 –

+0

我仍然認爲第二種方法是消費數據的人比嘗試和處理動態密鑰更好的方法 –

回答

1

我得到了你的問題一點點。 它是由等,{}有特殊字符排列字符串值形成的數據格式,[],「」,「:」。用這些字符排列字符串使整個數據有意義。一個字符串包含表示爲名稱 - 值雙內部JSON數據和數據的集合。

看一看錶示按鍵的信息,下面簡單的JSON字符串。

「keys」 :[{ 
       「name」 : 「FB」, 
       「number」 : 「psOVGY55Rnkr3QHntSCQ==」 
        }, 
       { 
       「name」 : 「SB」, 
       「number」 : 「」 
       }] 
+0

我的問題是這個 - 當前值被傳遞爲密鑰名稱,並且這些值(current鍵名)是動態的,即他們可以改變每個消息 - 如何正確反序列化Java中的對象,即我不能創建一個屬性FB和SB在POJO - FB/SB將不會出現在每個消息 –

+1

請通過這個,你可能會發現一些解決方案[鏈接](https://trinitytuts.com/tips/get-dynamic-keys-from-json-data/) –

+0

謝謝,但我也試圖使輸出更容易讓消費者解析 - 使用動態密鑰似乎不是最理想/更理智的方法,但我很欣賞反饋 –