private void processFieldAndMethodAttributes(TypeElement classElement, JsonObject classObj) {

		JsonArray fieldArray = new JsonArray();
		JsonArray methodArray = new JsonArray();

		for (Element el : classElement.getEnclosedElements()) {

			JsonObject obj = new JsonObject();
			obj.addProperty("name", el.getSimpleName().toString());
			obj.addProperty("comment", getComment(docTrees.getDocCommentTree(el)));
			obj.addProperty("javadoc", getJavadoc(docTrees.getDocCommentTree(el)));
			obj.addProperty("static", el.getModifiers().contains(Modifier.STATIC));

			switch (el.getKind()) {
				case FIELD:
					VariableElement varElement = (VariableElement) el;
					obj.addProperty("type_long", getTypeLong(el.asType()));
					obj.addProperty("type_short", getTypeShort(el.asType()));
					Object constantValue = varElement.getConstantValue();
					if (constantValue instanceof String) {
						constantValue = "\"" + constantValue + "\"";
					}
					obj.addProperty("constant_value", Objects.toString(constantValue, null)); // only applies to 'final'
					fieldArray.add(obj);
					break;
				case CONSTRUCTOR:
				case METHOD:
					ExecutableElement execElement = (ExecutableElement) el;
					addParams(execElement, obj);
					addReturn(execElement, obj);
					addExceptions(execElement, obj);
					methodArray.add(obj);
					break;
				case ANNOTATION_TYPE:
				case CLASS:
				case ENUM:
				case ENUM_CONSTANT:
				case EXCEPTION_PARAMETER:
				case INSTANCE_INIT:
				case INTERFACE:
				case LOCAL_VARIABLE:
				case MODULE:
				case OTHER:
				case PACKAGE:
				case PARAMETER:
				case RESOURCE_VARIABLE:
				case STATIC_INIT:
				case TYPE_PARAMETER:
				default:
					break;
			}
		}

		classObj.add("fields", fieldArray);
		classObj.add("methods", methodArray);
	}
Extracts javadoc information for all fields and methods in the given class.

@param classElement the class to parse
@param classObj the json object to populate
GhidraBuild/BuildFiles/Doclets/src/main/java/ghidra/doclets/json/JsonDoclet.java