java - 如何以良好的性能过滤 JSON 数据

标签 java json performance rest filtering

我在寻找这个问题的良好解决方案时遇到了一些问题:我从 RESTful API 获取 JSON 数据,我想根据某个字段的特定值对其进行过滤,使用过滤后的数据,然后将其发送给客户。

例如,采用以下 JSON:

{
"element1": {
    "width": 500,
    "height": 500
},
"element2": { 
    "width": 300,
    "height": 200
},
"element3": {
    "width": 600,
    "height": 100
}

}

如何仅过滤掉高度 >=200 或宽度 <=500 的元素? 当然,我可以迭代整个数据并获得我想要的内容,但是如果 JSON 非常大,则需要很长时间,而且由于我想为尽可能多的客户提供服务,这似乎不是正确的方法..

PS:仅供引用,我将用 java 对其进行编码..

最佳答案

使用 ServletStream 而不是 FileIS 尝试此示例

    import java.io.FileInputStream;

    import javax.xml.stream.XMLInputFactory;
    import javax.xml.stream.XMLStreamConstants;
    import javax.xml.stream.XMLStreamReader;

    import de.odysseus.staxon.json.JsonXMLInputFactory;

    public class Test {
        static XMLInputFactory ir = new JsonXMLInputFactory();

        public static void main(String[] args) throws Exception {

            FileInputStream servletInput = new FileInputStream("d:/test.json");
            XMLStreamReader reader = ir.createXMLStreamReader(servletInput,
                    "UTF-8");
            int typ = reader.next();
            while (typ != XMLStreamConstants.END_DOCUMENT) {

                if (typ == XMLStreamConstants.START_ELEMENT) {
                    String tagName = reader.getName().getLocalPart();
                    if (tagName.equals("width")) {
                        if (Integer.parseInt(reader.getElementText()) > 500) {
                            System.out.println("!FOUND!");
                        }
                    }
                }
                typ = reader.next();
            }
        }
    }

问候

关于java - 如何以良好的性能过滤 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11793953/

相关文章:

java - 插入多行 Realm android

java - 使用 StringBuilder 将包含多种编码的 byte[] 转换为 String

java - 在java中基于逗号分隔的字符串创建json?

java - 从 JSON 对象获取数组

c++ - 循环展开有利的条件以及返回率下降的点?

c++ - 将可选参数传递给方法而不是计算它的成本

java - 线程 "UI Thread"java.lang.UnsatisfiedLinkError : 中出现异常

java - Java中使用ArrayList实现Bfs

javascript - 语义 UI 搜索模块不显示 json 响应

ios - 宽高比限制会降低性能吗?