如何从给定的字符串中获取JSON STRING

ahamedirshad123

我在下面给出了一个字符串。我只需要获取第一个accountHeader(粗体)JSON字符串即可。

<START AdditionalInfo#:>[FormsGenerationServiceImpl::,  accountNumber:ABC07667 ,  [Source System Request  : {"Info":{"Holder": {"nameData": {"shortName": "McIntosh"}},**"accountHeader": {"a": "Y","b": "1","c": "4","draft": "P","e": "Y0000DU9","f": "T","g": "1"}**,"forms": {"maskSSN": "N","deliverForms": "G","selectedForms": {"T5": ["F10"],"T1": ["F1403"],"T2": ["F100001401"]}},"accountHeader": {"a": "Y","b": "1","c": "4","d": "HWA","draftRequestType": "P","e": "Y0000DU9","f": "T","g": "1"}}} ], null]<AdditionalInfo#: END>

我的输出应该是

"accountHeader": {"a": "Y","b": "1","c": "4","draft": "P","e": "Y0000DU9","f": "T","g": "1"}
芒登

以下是一些选择:

  1. grep与该-o标志一起使用仅打印该行的匹配部分,并使用head进行过滤,以仅获得第一个匹配项:

    grep -o '"accountHeader[^}]*}' file.json | head -n1 
    

    正则表达式会寻找一个"accountHeader尽可能多的非}字符,直到第一个}它基本上也与以下其他解决方案中使用的正则表达式相同。

  2. 使用sedwith-n禁止打印,并且p在替换后仅当替换成功时才打印。然后,替换(删除)除所需内容以外的所有内容:

    sed -n  's/.*\("accountHeader[^}]*}\).*/\1/p' file.json 
    
  3. 使用Perl,它-l会在每个print调用中添加一个换行符-n表示“处理输入文件的每一行”并应用以下脚本-e

    perl -lne  '/.*("accountHeader[^}]*})/ && print $1' file.json 
    
  4. 使用awk,这是假设**您的示例输入中的突出显示了您感兴趣的部分,而实际数据中实际上并不存在该部分。如果是这样,这应该起作用:

    awk -F'},' '{print $2"}"}' file.json
    

如果**确实存在,那么事情就更简单了,只需将它们用作字段定界符即可:

awk -F'**' '{print $2"}"}' file.json

或者

perl -F"\*\*" -alne 'print $F[1]' file.json

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从以下JSON字符串中获取string []?

如何从字符串或 json(string) 中解析特定的子字符串?

如何在String数组中迭代并在Swift中获取子字符串?

在 string:string 字典中查找值,其中给定的过滤器字符串是键字符串的子集

如何从Kotlin中的Map <String,Any?>获取字符串数组?

如何从小部件中的Future <String>获取真实的字符串值?

如何使用select-string从txt文件中获取特定字符串的值

如何使用 string.split(" ") Js 获取字符串中的第二组空格

如何在ViewModel中获取字符串值,例如R.string.value

如何使用php获取STRING查询字符串值

如何快速获取当前月份为String的字符串:

从字符串中获取单词 list<string> 的最快方法

如何修改 serde_json::Value::String 中的字符串?

从Observable <string>获取字符串

使用split获取给定String的所有1个字符长的子字符串的数组

如何从String中的给定区域删除重复字符?(假设我们有从中读取字符串的缓冲区)

如何从单<String>的反应中得到的java字符串

在Python中,如何编写字符串String =“ \ s”?

如何从单击方法的适配器类中的 string.xml 中获取字符串

如何从包含ID的字符串(例如:R.string。*,R.drawable。*等)中获取资源整数ID?

如何在一个用户定义的函数中创建自己的 String.Split() 和 Array.Reverse() 内置函数来反转给定的字符串?

如何使用Jackson JSON将JSON字符串转换为Map <String,Set <String >>

如何使用Jackson JSON将JSON字符串转换为Map <String,String>

如何使用字符位置范围获取 String 对象的子字符串?

string [0]从字符串中获取第一个字符

如何清理地图以返回Map <String,String>而不是Map <String?,字符串?>在Kotlin中?

使用@android:string中的字符串

ArrayList <String []>中的字符串

如何从字符串中获取json?