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.
83 lines
2.3 KiB
83 lines
2.3 KiB
package com.jayway.jsonpath.internal;
|
|
|
|
import com.jayway.jsonpath.Configuration;
|
|
import com.jayway.jsonpath.DocumentContext;
|
|
import com.jayway.jsonpath.ParseContext;
|
|
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.net.URL;
|
|
|
|
import static com.jayway.jsonpath.internal.Utils.notEmpty;
|
|
import static com.jayway.jsonpath.internal.Utils.notNull;
|
|
|
|
public class ParseContextImpl implements ParseContext {
|
|
|
|
private final Configuration configuration;
|
|
|
|
public ParseContextImpl() {
|
|
this(Configuration.defaultConfiguration());
|
|
}
|
|
|
|
public ParseContextImpl(Configuration configuration) {
|
|
this.configuration = configuration;
|
|
}
|
|
|
|
@Override
|
|
public DocumentContext parse(Object json) {
|
|
notNull(json, "json object can not be null");
|
|
return new JsonContext(json, configuration);
|
|
}
|
|
|
|
@Override
|
|
public DocumentContext parse(String json) {
|
|
notEmpty(json, "json string can not be null or empty");
|
|
Object obj = configuration.jsonProvider().parse(json);
|
|
return new JsonContext(obj, configuration);
|
|
}
|
|
|
|
@Override
|
|
public DocumentContext parse(InputStream json) {
|
|
return parse(json, "UTF-8");
|
|
}
|
|
|
|
@Override
|
|
public DocumentContext parse(InputStream json, String charset) {
|
|
notNull(json, "json input stream can not be null");
|
|
notNull(charset, "charset can not be null");
|
|
try {
|
|
Object obj = configuration.jsonProvider().parse(json, charset);
|
|
return new JsonContext(obj, configuration);
|
|
} finally {
|
|
Utils.closeQuietly(json);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public DocumentContext parse(File json) throws IOException {
|
|
notNull(json, "json file can not be null");
|
|
FileInputStream fis = null;
|
|
try {
|
|
fis = new FileInputStream(json);
|
|
return parse(fis);
|
|
} finally {
|
|
Utils.closeQuietly(fis);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public DocumentContext parse(URL url) throws IOException {
|
|
notNull(url, "url can not be null");
|
|
InputStream fis = null;
|
|
try {
|
|
fis = url.openStream();
|
|
return parse(fis);
|
|
} finally {
|
|
Utils.closeQuietly(fis);
|
|
}
|
|
}
|
|
|
|
}
|
|
|