2012-02-04 60 views
0

我有一個包含字母和數字的文本文件。這個字母 - 數字組合保存關於用戶的信息。例如:「P555636477JohnDoeEA 55687878 9789899 2899298」第一個字母可以是「P/G/S」,意思是Premium,Gold或Simple。跟隨他的電話號碼和姓名。兩個字母E和A意味着母語(英語)和國籍(美國)。然後跟着他的其他電話號碼,他已經註冊。可能有超過3個數字。我的問題是:將這些信息解析爲JSON對象的最佳方法是什麼?林想使用正則表達式和StringBuilder的,但是我不知道如何在最後接近那些電話號碼......將文本數據轉換爲Java中的JSON對象

它應該是這個樣子:

{ "membership": "Premium", 
    "telephone": "555636477", 
    "firstName": "John", 
    "lastName":  "Doe", 
    "otherNumbers": [ 
        {"number:"55687878"}, 
        {"number":"9789899"}, 
        {"number":"2899298"} 
        ] 
} 

回答

1

最簡單的是做一個對象,保存這些信息,使用正則表達式解析文本文件,設置對象的適當屬性,然後使用jackson將其序列化。

2

這是最後的數字通過sprace字符分開嗎?如果是這樣,您可以使用split方法來獲取一個字符串數組。

然後,您必須使用RegEx作爲第一個條目,其他所有條目都是您的電話號碼。

的陣列看起來像:

["P555636477JohnDoeEA", "55687878", "9789899", "2899298"] 

那麼你可以使用json-lib或其他圖書館,讓您的數據,以JSON。

+0

那麼,任何元素之間都可以有空格。 – jyriand 2012-02-04 13:36:44

+0

數據每次都有不一樣的格式? – tbraun89 2012-02-04 13:40:01

+0

序列相同:成員資格,姓名,語言...等等,但可能有間隔。最後的電話號碼總是用空格分隔。所以它也可以看起來像這樣:「P 555636477 JohnDoeE A 55687878 9789899 2899298」 – jyriand 2012-02-04 13:46:46