Построение упорядоченного JSON String для LinkedHashMap в стороне объекта пользователя Java Джексона или Gson, как? - PullRequest
4 голосов
/ 10 марта 2019

Построение упорядоченного JSON String для LinkedHashMap внутри объекта Java Джексон или Gson как ??? Но я хочу это в порядке вставки клавиш, вот так.

public class User {

private String user
private String role;

Map<String,String > myLinkedHashMap =  new LinkedHashMap<String, String>();

public void setUser(String user) {
    this.user = user;
}

public void setRole(String role) {
    this.role = role;
}

public String getUser() {
    return user;
}

public String getRole() {
    return role;
}
 ...
}

Основной

 string json= "[    {    "user": "Tom",    "role": "READER",   
 "myLinkedHashMap": {
        "1": "first",
        "2": "second",
        "3": "third"   }  } ]";

         output=getUserFromJsonString(json);

  public ClaimDoc getUserFromJsonString(String claimDoc) throws
 IOException {
         ObjectMapper mapper = new ObjectMapper();
         return mapper.readValue(claimDoc, ClaimDoc.class);
     }

Выход

  [
    {
    "user": "Tom",
    "role": "READER",
    "myLinkedHashMap": {
        "3": "third"
        "1": "first",
        "2": "second"

   }
  }
 ]

Но я хочу это в порядке вставки, например:

   [
    {
    "user": "Tom",
    "role": "READER",
    "myLinkedHashMap": {
        "1": "first",
        "2": "second",
        "3": "third"
   }
  }
 ]

1 Ответ

0 голосов
/ 10 марта 2019

В классе пользователя вместо Карта используйте LinkedHashMap , это будет работать

LinkedHashMap<String,String > myLinkedHashMap =  new LinkedHashMap<String, String>();
...