jodd-json/src/main/java/jodd/json/TypeJsonVisitor.java
protected void onProperty(
		String propertyName,
		final PropertyDescriptor propertyDescriptor,
		final boolean isTransient) {

		Class propertyType = propertyDescriptor == null ?  null : propertyDescriptor.getType();

		Path currentPath = jsonContext.path;

		currentPath.push(propertyName);

		// change name for properties

		if (propertyType != null) {
			propertyName = typeData.resolveJsonName(propertyName);
		}

		// determine if name should be included/excluded

		boolean include = !typeData.strict;

		// + don't include transient fields

		if (isTransient) {
			include = false;
		}

		// + all collections are not serialized by default

		include = jsonContext.matchIgnoredPropertyTypes(propertyType, true, include);

		// + annotations

		include = typeData.rules.apply(propertyName, true, include);

		// + path queries: excludes/includes

		include = jsonContext.matchPathToQueries(include);

		// done

		if (!include) {
			currentPath.pop();
			return;
		}

		onSerializableProperty(propertyName, propertyDescriptor);

		currentPath.pop();
	}
protected void onProperty(
		String propertyName,
		final PropertyDescriptor propertyDescriptor,
		final boolean isTransient) {

		Class propertyType = propertyDescriptor == null ?  null : propertyDescriptor.getType();

		Path currentPath = jsonContext.path;

		currentPath.push(propertyName);

		// change name for properties

		if (propertyType != null) {
			propertyName = typeData.resolveJsonName(propertyName);
		}

		// determine if name should be included/excluded

		boolean include = !typeData.strict;

		// + don't include transient fields

		if (isTransient) {
			include = false;
		}

		// + all collections are not serialized by default

		include = jsonContext.matchIgnoredPropertyTypes(propertyType, true, include);

		// + annotations

		include = typeData.rules.apply(propertyName, true, include);

		// + path queries: excludes/includes

		include = jsonContext.matchPathToQueries(include);

		// done

		if (!include) {
			currentPath.pop();
			return;
		}

		onSerializableProperty(propertyName, propertyDescriptor);

		currentPath.pop();
	}
protected void onProperty ( String propertyName , final PropertyDescriptor propertyDescriptor , final boolean isTransient ) { Class propertyType = propertyDescriptor == null ? null : propertyDescriptor . getType ( ) ; Path currentPath = jsonContext . path ; currentPath . push ( propertyName ) ; // change name for properties if ( propertyType != null ) { propertyName = typeData . resolveJsonName ( propertyName ) ; } // determine if name should be included/excluded boolean include = ! typeData . strict ; // + don't include transient fields if ( isTransient ) { include = false ; } // + all collections are not serialized by default include = jsonContext . matchIgnoredPropertyTypes ( propertyType , true , include ) ; // + annotations include = typeData . rules . apply ( propertyName , true , include ) ; // + path queries: excludes/includes include = jsonContext . matchPathToQueries ( include ) ; // done if ( ! include ) { currentPath . pop ( ) ; return ; } onSerializableProperty ( propertyName , propertyDescriptor ) ; currentPath . pop ( ) ; }
Invoked on each property. Properties are getting matched against the rules.
If property passes all the rules, it will be processed in
{@link #onSerializableProperty(String, jodd.introspector.PropertyDescriptor)}.
Invoked on each property . Properties are getting matched against the rules . If property passes all the rules it will be processed in {