package com.nicusa.util;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class FieldFinder {
private static final Logger log = LoggerFactory.getLogger(FieldFinder.class);
private String field;
public FieldFinder ( String field ) {
this.field = field;
}
public Set<String> find ( String json ) throws IOException {
Set<String> uniis = new TreeSet<String>();
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree( json );
List<JsonNode> ulist = node.findValues( this.field );
for ( JsonNode n : ulist ) {
if ( n.isArray() ) {
Iterator<JsonNode> iter = n.elements();
while ( iter.hasNext() ) {
uniis.add( iter.next().textValue().toUpperCase() );
}
} else {
uniis.add( n.textValue().toUpperCase() );
}
}
return uniis;
}
}