
json对象里面可能有100个k-v,移除50个,保留50个
最近优化存储有用到,对于已经get_json_object解析到的就从原始的字段里踢出去,避免重复存储。
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.apache.hadoop.hive.ql.exec.UDF;
public class JsonObjectRemove extends UDF {
public String evaluate(String input,String ...params) throws Exception {
JsonObject jsonObject = new JsonParser().parse(input).getAsJsonObject();
if (params == null || params.length == 0) {
throw new IllegalArgumentException("参数不能为空");
}
for (int i = 0; i < params.length; i++) {
jsonObject.remove(params[i]);
}
String jsonObject1 = new Gson().toJson(jsonObject);
return jsonObject1;
}
}
该博客介绍了如何在Java中使用Gson和JsonParser库来优化存储,通过移除指定的键值对以减少JSON对象的大小。示例代码展示了一个用户定义的UDF(用户自定义函数)方法,该方法接受一个JSON字符串和要删除的键列表,然后返回移除了这些键后的JSON对象的字符串表示。这种方法有助于避免重复存储并节省存储空间。
9727

被折叠的 条评论
为什么被折叠?



