Java tutorial
/******************************************************************************* * * Copyright (c) 2016 Mickael Gizthon . All rights reserved. Email:2013mzhou@gmail.com * * 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.commonslibrary.commons.utils; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; public class JsonUtils { private JsonUtils() { throw new UnsupportedOperationException("cannot be instantiated"); } /** * ?JsonObject * * @param json * @return */ public static JsonObject parseJson(String json) { try { JsonParser parser = new JsonParser(); JsonObject jsonObj = parser.parse(json).getAsJsonObject(); return jsonObj; } catch (Exception e) { return null; } } /** * ?jsonMap * * @param json * @return */ public static Map<String, Object> toMap(String json) { return toMap(parseJson(json)); } /** * JSONObjec??Map-List? * * @param json * @return */ public static Map<String, Object> toMap(JsonObject json) { Map<String, Object> map = new HashMap<String, Object>(); Set<Map.Entry<String, JsonElement>> entrySet = json.entrySet(); for (Iterator<Map.Entry<String, JsonElement>> iter = entrySet.iterator(); iter.hasNext();) { Map.Entry<String, JsonElement> entry = iter.next(); String key = entry.getKey(); Object value = entry.getValue(); if (value instanceof JsonArray) map.put((String) key, toList((JsonArray) value)); else if (value instanceof JsonObject) map.put((String) key, toMap((JsonObject) value)); else map.put((String) key, value); } return map; } /** * JSONArray??List? * * @param json * @return */ public static List<Object> toList(JsonArray json) { List<Object> list = new ArrayList<Object>(); if (json == null) { return list; } for (int i = 0; i < json.size(); i++) { Object value = json.get(i); if (value instanceof JsonArray) { list.add(toList((JsonArray) value)); } else if (value instanceof JsonObject) { list.add(toMap((JsonObject) value)); } else { list.add(value); } } return list; } public static String mapToString(Map map) { try { return new Gson().toJson(map); } catch (Exception e) { return ""; } } /** * ??json * * @param obj * @return */ public static String toJson(Object obj) { try { Gson gson = new Gson(); return gson.toJson(obj); } catch (Exception e) { return ""; } } }