繁体   English   中英

过滤 JSON 响应以获取值中的子字符串

[英]Filter JSON response for a substring in value

我正在运行一个OCR作业,它以JSON格式的响应返回所有检测到的文本。 摘录在这里:

     { BlockType: 'WORD',
       Confidence: 99.76903533935547,
       Text: 'SALES',
       Geometry: [Object],
       Id: '5ec23a08-9414-4b5c-99e7-1eae56bdc50a' },
     { BlockType: 'WORD',
       Confidence: 99.61475372314453,
       Text: 'TAX',
       Geometry: [Object],
       Id: '564594a4-32d6-4a24-aaf6-76ac2794dfbb' },
     { BlockType: 'WORD',
       Confidence: 98.65728759765625,
       Text: '-7.94',
       Geometry: [Object],
       Id: 'f9c94902-4807-43a2-b834-b68d52f00efc' },
     { BlockType: 'WORD',
       Confidence: 99.82821655273438,
       Text: 'TOTAL',
       Geometry: [Object],
       Id: '8515e57f-fe6f-4c13-b2d0-c0dcb82333bb' },      
     { BlockType: 'WORD',
       Confidence: 98.82560729980469,
       Text: '-$140.32',
       Geometry: [Object],
       Id: 'e7ba0d15-678a-4b30-a764-0a41d7f89f29' },
    { BlockType: 'LINE',
        Confidence: 96.75798797607422,
        Text: 'CASHIER: JSMITH',
        Geometry: { BoundingBox: [Object], Polygon: [Array] },
        Id: 'f50c8a71-6954-428f-8d61-8a143194befd',
        Relationships: [ [Object] ] }

我需要筛选出"matches"某个前缀字符串的字段。

这些非常适用于完全匹配的字段......

var data2 = data.filter(d => d.Text == 'SALES');

var data2 = data.filter(d => d.Text == 'TAX');

但对于CASHIER领域来说并不是那么多。

我尝试了几种方法......无济于事......包括......

var data2 = data.filter(d => d.Text.includes('CASH') );

var data2 = data.filter(d => d.Text.match('CASH') );

任何不是比较运算符的东西都会产生这种类型的错误......

TypeError: Cannot read property 'includes' of undefined

关于如何在JSON上执行"like 'CASH' "过滤器的任何想法?

您必须得到以下错误,因为在数据文本键中将具有空值或未定义值

因此,您可以修改代码以存档所需的结果。

var data2 = data.filter(d => d.Text && d.Text.startsWith('CASH'));

尝试这个 :

 var data = [{ "Text": "SALES" }, { "Text": "TAX" }, { "Text": "-7.94" }, { "Text": "TOTAL" }, { "Text": "-$140.32" }, { "Text": "CASHIER: JSMITH" } ]; var res = data.filter(d => d.Text.startsWith('CASH')); console.log(res);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM