【问题标题】:text data into JSON object in Java将文本数据转换为 Java 中的 JSON 对象
【发布时间】:2012-02-04 13:19:22
【问题描述】:

我有一个包含字母和数字的文本文件。这个字母数字组合包含有关用户的信息。例如:“P555636477JohnDoeEA 55687878 9789899 2899298” 第一个字母可以是“P/G/S”,意思是 Premium、Gold 或 Simple。跟随他的电话号码和姓名。两个字母 E 和 A 表示母语(英语)和国籍(美国)。然后是他注册的其他电话号码。可能有超过 3 个数字。我的问题是:将此信息解析为 JSON 对象的最佳方法是什么?我正在考虑使用正则表达式和 StringBuilder,但我不确定最后如何处理这些电话号码......

它应该看起来像这样:

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

【问题讨论】:

    标签: java regex json


    【解决方案1】:

    最后一个数字是用空格字符分隔的吗?如果是这样,您可以使用split 方法来获取字符串数组。

    那么你必须在第一个条目中使用正则表达式,所有其他的都是你的电话号码。

    数组看起来像:

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

    然后您可以使用json-lib 或其他库将您的数据转换为 JSON。

    【讨论】:

    • 嗯,任何元素之间都可以有空格。
    • 顺序是一样的:成员、姓名、语言……等等……但中间可能有空格。最后的电话号码总是用空格分隔。所以它也可以看起来像这样:“P 555636477 JohnDoeE A 55687878 9789899 2899298”
    • 如果第一个数据元素之间的空格并不总是存在,您应该使用正则表达式解析它:(P|G|S)( )?(\w)*( )? ... 并始终关心可选的空格字符,并在最后将它们设为非可选。跨度>
    【解决方案2】:

    最简单的方法是创建一个包含此信息的对象,使用正则表达式解析您的文本文件,设置对象的适当属性,然后使用jackson 对其进行序列化。

    【讨论】:

      猜你喜欢
      • 2010-12-13
      • 1970-01-01
      • 2012-08-29
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多