亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jsonserializationvisitor.java

?? 地圖生成的一個文件
?? JAVA
字號:
/* * Copyright (C) 2008 Google Inc. * * 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.google.gson;import java.lang.reflect.Array;import java.lang.reflect.Field;import java.lang.reflect.Type;/** * A visitor that adds JSON elements corresponding to each field of an object * * @author Inderjeet Singh * @author Joel Leitch */final class JsonSerializationVisitor implements ObjectNavigator.Visitor {  private final ObjectNavigatorFactory factory;  private final ParameterizedTypeHandlerMap<JsonSerializer<?>> serializers;  private final boolean serializeNulls;  private final JsonSerializationContext context;  private JsonElement root;  JsonSerializationVisitor(ObjectNavigatorFactory factory, boolean serializeNulls,      ParameterizedTypeHandlerMap<JsonSerializer<?>> serializers,      JsonSerializationContext context) {    this.factory = factory;    this.serializeNulls = serializeNulls;    this.serializers = serializers;    this.context = context;  }    public Object getTarget() {    return null;  }  public void startVisitingObject(Object node) {    assignToRoot(new JsonObject());  }  public void visitArray(Object array, Type arrayType) {    assignToRoot(new JsonArray());    int length = Array.getLength(array);    TypeInfoArray fieldTypeInfo = TypeInfoFactory.getTypeInfoForArray(arrayType);    Type componentType = fieldTypeInfo.getSecondLevelType();    for (int i = 0; i < length; ++i) {      Object child = Array.get(array, i);      addAsArrayElement(componentType, child);    }  }  public void visitArrayField(Field f, Type typeOfF, Object obj) {    if (isFieldNull(f, obj)) {      if (serializeNulls) {        addChildAsElement(f, JsonNull.createJsonNull());      }    } else {      Object array = getFieldValue(f, obj);      addAsChildOfObject(f, typeOfF, array);    }  }  public void visitObjectField(Field f, Type typeOfF, Object obj) {    if (isFieldNull(f, obj)) {      if (serializeNulls) {        addChildAsElement(f, JsonNull.createJsonNull());      }    } else {      Object fieldValue = getFieldValue(f, obj);      // This takes care of situations where the field was declared as an Object, but the      // actual value contains something more specific. See Issue 54.      if (fieldValue != null && typeOfF == Object.class) {        typeOfF = fieldValue.getClass();      }      addAsChildOfObject(f, typeOfF, fieldValue);    }  }  private void addAsChildOfObject(Field f, Type fieldType, Object fieldValue) {    JsonElement childElement = getJsonElementForChild(fieldType, fieldValue);    addChildAsElement(f, childElement);  }  private void addChildAsElement(Field f, JsonElement childElement) {    FieldNamingStrategy namingPolicy = factory.getFieldNamingPolicy();    root.getAsJsonObject().add(namingPolicy.translateName(f), childElement);  }  private void addAsArrayElement(Type elementType, Object elementValue) {    if (elementValue == null) {      root.getAsJsonArray().add(JsonNull.createJsonNull());    } else {      JsonElement childElement = getJsonElementForChild(elementType, elementValue);      root.getAsJsonArray().add(childElement);    }  }  private JsonElement getJsonElementForChild(Type fieldType, Object fieldValue) {    ObjectNavigator on = factory.create(fieldValue, fieldType);    JsonSerializationVisitor childVisitor =        new JsonSerializationVisitor(factory, serializeNulls, serializers, context);    on.accept(childVisitor);    return childVisitor.getJsonElement();  }  @SuppressWarnings("unchecked")  public boolean visitUsingCustomHandler(Object obj, Type objType) {    JsonSerializer serializer = serializers.getHandlerFor(objType);    if (serializer != null) {      if (obj == null) {        assignToRoot(JsonNull.createJsonNull());      } else {        assignToRoot(serializer.serialize(obj, objType, context));      }      return true;    }    return false;  }  @SuppressWarnings("unchecked")  public boolean visitFieldUsingCustomHandler(Field f, Type actualTypeOfField, Object parent) {    try {      Preconditions.checkState(root.isJsonObject());      Object obj = f.get(parent);      if (obj == null) {        if (serializeNulls) {          addChildAsElement(f, JsonNull.createJsonNull());        }        return true;      }      JsonSerializer serializer = serializers.getHandlerFor(actualTypeOfField);      if (serializer != null) {        JsonElement child = serializer.serialize(obj, actualTypeOfField, context);        addChildAsElement(f, child);        return true;      }      return false;    } catch (IllegalAccessException e) {      throw new RuntimeException();    }  }  private void assignToRoot(JsonElement newRoot) {    Preconditions.checkNotNull(newRoot);    root = newRoot;  }  private boolean isFieldNull(Field f, Object obj) {    return getFieldValue(f, obj) == null;  }  private Object getFieldValue(Field f, Object obj) {    try {      return f.get(obj);    } catch (IllegalAccessException e) {      throw new RuntimeException(e);    }  }  public JsonElement getJsonElement() {    return root;  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合久久鬼色| 在线观看91av| 中文字幕在线观看不卡| 国产成人av电影在线播放| 久久久国产午夜精品| 丁香网亚洲国际| 中文字幕一区二区三区视频| 在线观看免费亚洲| 日本少妇一区二区| 欧美电影精品一区二区| 国产福利91精品| 日韩一区在线免费观看| 91福利社在线观看| 麻豆精品视频在线| 国产亚洲欧美色| 日本高清免费不卡视频| 欧美性高清videossexo| 日本一不卡视频| 久久久综合网站| 色成年激情久久综合| 日本亚洲免费观看| 国产欧美一区二区精品婷婷| 99久久er热在这里只有精品15| 亚洲午夜三级在线| 亚洲精品一区二区三区蜜桃下载 | 中文字幕久久午夜不卡| 91麻豆自制传媒国产之光| 日韩成人午夜精品| 国产精品久久久久毛片软件| 欧美日韩一区二区三区在线 | 久久66热re国产| 国产精品每日更新| 欧美精选午夜久久久乱码6080| 国产在线精品一区二区不卡了 | 精品一区二区在线看| 中文字幕制服丝袜一区二区三区| 精品视频一区二区不卡| 国产精品一二三在| 婷婷综合另类小说色区| 中文字幕av不卡| 日韩一级免费观看| 在线亚洲高清视频| 国产福利一区在线| 热久久一区二区| 中文字幕亚洲在| 久久九九全国免费| 91精品国产综合久久蜜臀| 94-欧美-setu| 国产成人免费在线视频| 日本欧洲一区二区| 一区二区三区在线观看网站| 国产亚洲欧洲一区高清在线观看| 欧美欧美午夜aⅴ在线观看| 成人福利电影精品一区二区在线观看| 欧美午夜一区二区| 国产+成+人+亚洲欧洲自线| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲人成在线播放网站岛国| 国产视频视频一区| 久久综合九色综合久久久精品综合| 在线精品视频免费观看| 99久久综合99久久综合网站| 国产一区二区日韩精品| 日本不卡一二三| 视频一区国产视频| 亚洲成人综合网站| 亚洲国产日韩一区二区| 亚洲女性喷水在线观看一区| 国产精品卡一卡二| 日本一区二区在线不卡| 2023国产精品视频| 2019国产精品| 精品粉嫩超白一线天av| 日韩视频在线一区二区| 日韩欧美国产麻豆| 精品日韩在线观看| 91精品国产色综合久久ai换脸| 欧美少妇性性性| 欧美日韩国产一级二级| 欧美精品少妇一区二区三区| 欧美日韩不卡在线| 欧美一区二区视频在线观看2022 | 亚洲chinese男男1069| 亚洲国产精品久久人人爱| 亚洲欧洲日产国产综合网| 国产精品久久久久影院色老大| 一区在线观看视频| 一区二区三区四区激情| 亚洲午夜免费福利视频| 日韩精品午夜视频| 精品制服美女丁香| 国产激情精品久久久第一区二区 | 国产成人综合在线| 成人性视频免费网站| 91视频国产资源| 欧美日韩一区二区电影| 欧美不卡123| 亚洲国产精品av| 亚洲国产综合色| 麻豆精品在线看| av电影在线观看一区| 在线中文字幕一区| 日韩欧美一区二区在线视频| 久久综合久久鬼色| 亚洲精品视频免费看| 日韩福利电影在线观看| 国产综合久久久久久久久久久久 | 另类人妖一区二区av| 国产福利一区二区| 欧美午夜电影网| 久久综合国产精品| 亚洲欧洲精品成人久久奇米网| 亚洲一区二区黄色| 国产一区在线精品| 91久久久免费一区二区| 欧美成人精品二区三区99精品| 中文字幕第一页久久| 天堂久久一区二区三区| 国产精品99久久久| 欧美日韩中文另类| 亚洲国产高清在线| 日韩高清一区在线| 色噜噜狠狠成人网p站| 亚洲国产欧美一区二区三区丁香婷| 麻豆精品蜜桃视频网站| 色综合久久天天| 久久综合久久99| 舔着乳尖日韩一区| 95精品视频在线| 精品久久久久久久久久久久包黑料| 亚洲精品视频免费看| 国产毛片精品视频| 91麻豆精品91久久久久久清纯| 国产精品视频免费看| 老司机一区二区| 欧美色中文字幕| 亚洲欧美色一区| 国产精品一区三区| 制服丝袜中文字幕一区| 亚洲伦在线观看| 丁香激情综合五月| 精品国产乱码久久久久久1区2区| 一区二区三区四区av| 成人av资源站| 国产午夜精品久久久久久免费视 | 午夜精品久久久久久| 丁香六月久久综合狠狠色| 欧美va在线播放| 日日欢夜夜爽一区| 欧美性感一类影片在线播放| 中文字幕制服丝袜一区二区三区 | 国产日韩欧美精品综合| 日本最新不卡在线| 欧美日韩一区二区在线观看| 亚洲欧美激情在线| av亚洲产国偷v产偷v自拍| 国产色产综合色产在线视频| 欧美一区永久视频免费观看| 有坂深雪av一区二区精品| 播五月开心婷婷综合| 国产女人水真多18毛片18精品视频| 久久不见久久见免费视频1| 91精品久久久久久久91蜜桃| 亚洲成av人片一区二区三区| 欧美色图一区二区三区| 亚洲制服丝袜av| 欧美日韩日日摸| 婷婷成人综合网| 欧美一区二区在线播放| 精品一区二区综合| 久久色视频免费观看| 国产精品综合一区二区三区| 久久久久久久久久久久久夜| 国产在线精品一区二区不卡了| 精品国产乱码久久久久久久久| 黄色精品一二区| 欧美极品aⅴ影院| voyeur盗摄精品| 一区二区三区美女视频| 欧美日韩一区二区三区视频| 五月婷婷久久综合| 日韩欧美www| 国产a精品视频| 亚洲九九爱视频| 制服丝袜av成人在线看| 国内精品不卡在线| 国产精品美女一区二区三区| 99r精品视频| 午夜精品久久久久久久蜜桃app| 51精品秘密在线观看| 欧美日韩不卡在线| 久久99久久99| 欧美激情一区二区三区四区| 99精品久久只有精品| 亚洲h动漫在线| 国产偷v国产偷v亚洲高清| 91蜜桃网址入口| 麻豆精品一区二区综合av| 国产精品乱码久久久久久| 欧美制服丝袜第一页|