处理数组

时间:2017-03-23 08:21:24

标签: java json

所以我将出生日期插入API,API返回更新后的信息,我应该在处理java后端数据后在另一页上显示。

以下是JSON中返回的内容:

"firstname": "John",
"middlename": "The",
  "lastname": "Doe",
  "displayName": "John The Doe",
  "dateOfBirth": [
    1994,
    3,
    26
  ]

所以我遇到了麻烦,就是在单独的变量中选出3(年/月/日),因为如果03中没有0(例如火星)我想加0,那么同样如此一天。

我在这里得到了这个对象:

@Override
public Object getDateOfBirth() {
    return get("dateOfBirth");
}

但我得到的[1994,3,26]显然在网站上看起来很糟糕。

你如何得到不同变量的3“1994,3,26”?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

如果您使用的是Java 8或更高版本,则可以使用LocalDateLocalDate类表示没有时间且没有时区的仅限日期的值。

LocalDate.of(year, month, day); //2015-12-22
LocalDate.of(Integer.parseInt(dateOfBirth[0]), Integer.parseInt(dateOfBirth[1]), Integer.parseInt(dateOfBirth[2]));

答案 1 :(得分:0)

看看this link这可以提供帮助。 我可以建议你使用Gson

如果您使用maven将此依赖项添加到pom

<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.0</version>
</dependency>



public class MyJsonAsClass
{
    private String firstname;
    private String middlename;
    private String lastname;
    private String displayName;
    private List<String> dateOfBirth;

    public MyJsonAsClass()
    {

    }

    public static MyJsonAsClass fromString(String json) 
    {
       Gson gson = new Gson();
       MyJsonAsClass info = gson.fromJson(json, MyJsonAsClass.class);
       return info;
    }
    /*you need to add getters & setters */

    public List<String> getdateOfBirth()
    {
       for (String date : dateOfBirth) {
           if (date.length()==1)
               date='0'+date;
       }
       return dateOfBirth;
    }

答案 2 :(得分:0)

  

但是我[1994,3,26]显然在网站上看起来非常糟糕。

     

你如何得到3&#34; 1994,3,26&#34;在不同的变量?

您可以将返回的数组对象的输出转换为自定义格式以供显示。假设get("dateOfBirth")返回Array个对象。你可以做类似的事情......

String result = Arrays.toString(dateOfBirthArrayObject).replaceAll("[\\[\\]]", "");

System.out.println(result);

输出: 1994,3,26