Java 类com.facebook.stetho.json.annotation.JsonProperty 实例源码

项目:stetho    文件:ObjectMapper.java   
private JSONObject _convertToJSONObject(Object fromValue)
    throws JSONException, InvocationTargetException, IllegalAccessException {
  JSONObject jsonObject = new JSONObject();
  Field[] fields = fromValue.getClass().getFields();
  for (int i = 0; i < fields.length; ++i) {
    Field field = fields[i];
    if (Modifier.isStatic(field.getModifiers())) {
      continue;
    }
    JsonProperty property = field.getAnnotation(JsonProperty.class);
    if (property != null) {
      // AutoBox here ...
      Object value = field.get(fromValue);
      Class clazz = field.getType();
      if (value != null) {
        clazz = value.getClass();
      }
      String name = field.getName();
      if (property.required() && value == null) {
        value = JSONObject.NULL;
      } else if (value == JSONObject.NULL) {
        // Leave it as null in this case.
      } else {
        value = getJsonValue(value, clazz, field);
      }
      jsonObject.put(name, value);
    }
  }
  return jsonObject;
}