Java tutorial
/** * * Copyright (c) 2006-2015, Speedment, Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); You may not * use this file except in compliance with the License. You may obtain a copy of * the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.speedment.examples.social; import static com.speedment.examples.social.util.Base64Util.fromBase64; import java.util.ArrayList; import java.util.List; import java.util.Optional; import javafx.scene.image.Image; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.JSONValue; /** * * @author Emil Forslund */ public class JSONUser { private long id; private String mail; private String firstname; private String lastname; private Image avatar; private JSONUser() { } public long getId() { return id; } public String getMail() { return mail; } public String getFirstname() { return firstname; } public String getLastname() { return lastname; } public Image getAvatar() { return avatar; } public static List<JSONUser> parse(String json) { final JSONObject container = (JSONObject) JSONValue.parse(json); final JSONArray array = (JSONArray) container.get("users"); final List<JSONUser> users = new ArrayList<>(); array.stream().forEach(u -> { users.add(parse((JSONObject) u)); }); return users; } public static JSONUser parseOne(String json) { return parse((JSONObject) JSONValue.parse(json)); } public static JSONUser parse(JSONObject user) { final JSONUser usr = new JSONUser(); usr.id = Long.parseLong(user.get("id").toString()); usr.mail = user.get("mail").toString(); usr.firstname = mapToString(user, "firstName"); usr.lastname = mapToString(user, "lastName"); usr.avatar = Optional.ofNullable(user.get("avatar")).map(Object::toString).filter(s -> !s.isEmpty()) .map(s -> fromBase64(s)).orElse(null); return usr; } private static String mapToString(JSONObject user, String key) { return Optional.ofNullable(user.get(key)).map(Object::toString).orElse(""); } }