JsonPath仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
1.8 KiB

package com.jayway.jsonpath.spi;
import com.jayway.jsonpath.InvalidJsonException;
import java.util.List;
import java.util.Map;
/**
* Created by IntelliJ IDEA.
* User: kallestenflo
* Date: 11/8/11
* Time: 3:51 PM
*/
public abstract class JsonProvider {
public abstract Mode getMode();
public abstract Object parse(String json) throws InvalidJsonException;
public abstract Map<String, Object> createMap();
public abstract List<Object> createList();
/**
* checks if object is <code>instanceof</code> <code>java.util.List</code> or <code>java.util.Map</code>
*
* @param obj object to check
* @return true if List or Map
*/
public boolean isContainer(Object obj) {
return (isList(obj) || isMap(obj));
}
/**
* checks if object is <code>instanceof</code> <code>java.util.List</code>
*
* @param obj object to check
* @return true if List
*/
public boolean isList(Object obj) {
return (obj instanceof List);
}
/**
* Converts give object to a List
*
* @param list
* @return
*/
public List<Object> toList(Object list) {
return (List<Object>) list;
}
/**
* Converts given object to a Map
*
* @param map
* @return
*/
public Map<String, Object> toMap(Object map) {
return (Map<String, Object>) map;
}
/**
* Extracts a value from a Map
*
* @param map
* @param key
* @return
*/
public Object getMapValue(Object map, String key) {
return toMap(map).get(key);
}
/**
* checks if object is <code>instanceof</code> <code>java.util.Map</code>
*
* @param obj object to check
* @return true if Map
*/
public boolean isMap(Object obj) {
return (obj instanceof Map);
}
}