1.如何删除json里面的某个值
采用JsonPath里面delete方法,具体代码如下:
package testCode;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.jayway.jsonpath.Configuration;
import com.jayway.jsonpath.JsonPath;
import com.jayway.jsonpath.Predicate;
public class TestJsonPath {
public JSONObject delete(JSONObject j){
Configuration configuration = Configuration.builder().build();
JsonPath jsonPath = JsonPath.compile("$.store.book[0].title", new Predicate[0]);
j = jsonPath.delete(j, configuration);
return j;
}
public static void main(String args[]){
String s = "{\n" +
" \"store\": {\n" +
" \"book\": [\n" +
" {\n" +
" \"category\": \"reference\",\n" +
" \"author\": \"Nigel Rees\",\n" +
" \"title\": \"Sayings of the Century\",\n" +
" \"price\": 8.95\n" +
" },\n" +
" {\n" +
" \"category\": \"fiction\",\n" +
" \"author\": \"Evelyn Waugh\",\n" +
" \"title\": \"Sword of Honour\",\n" +
" \"price\": 12.99\n" +
" },\n" +
" {\n" +
" \"category\": \"fiction\",\n" +
" \"author\": \"Herman Melville\",\n" +
" \"title\": \"Moby Dick\",\n" +
" \"isbn\": \"0-553-21311-3\",\n" +
" \"price\": 8.99\n" +
" },\n" +
" {\n" +
" \"category\": \"fiction\",\n" +
" \"author\": \"J. R. R. Tolkien\",\n" +
" \"title\": \"The Lord of the Rings\",\n" +
" \"isbn\": \"0-395-19395-8\",\n" +
" \"price\": 22.99\n" +
" }\n" +
" ],\n" +
" \"bicycle\": {\n" +
" \"color\": \"red\",\n" +
" \"price\": 19.95\n" +
" }\n" +
" },\n" +
" \"expensive\": 10\n" +
"}";
JSONObject json = JSONObject.parseObject(s);
String author = JsonPath.read(json, "$.store.book[0].title");
System.out.println("test1"+author);
TestJsonPath t = new TestJsonPath();
t.delete(json);
System.out.println(json);
}
}
2.进行规则的预编译来提升性能
如果对一个json要进行大数据量的操作可以使用
参考资料:
1.http://www.ibloger.net/article/2329.html