Heim  >  Artikel  >  Backend-Entwicklung  >  提取文本(txt)中json数组中的某一项值

提取文本(txt)中json数组中的某一项值

WBOY
WBOYOriginal
2016-10-22 00:14:211415Durchsuche

1.项目和第三方平台做了对接,之前的技术人员将返回结果写入了txt文件,内容有下单人姓名、手机号、jason数组(数组里面是第三方平台返回的结果);
现在我需要将json里面的某一项值提取出来,提交给支付宝。 我不知道该怎么操作

提取文本(txt)中json数组中的某一项值

我要取得是数组里的 PayDeclareAmount":0.0075 这个值 请问大神们有什么思路?

回复内容:

1.项目和第三方平台做了对接,之前的技术人员将返回结果写入了txt文件,内容有下单人姓名、手机号、jason数组(数组里面是第三方平台返回的结果);
现在我需要将json里面的某一项值提取出来,提交给支付宝。 我不知道该怎么操作

提取文本(txt)中json数组中的某一项值

我要取得是数组里的 PayDeclareAmount":0.0075 这个值 请问大神们有什么思路?

有两种方法:

  1. 如果前面的格式相似的,都是n行开头,直接skip n行, 上面的数据,然后,后面读取的行信息的都拼接到一起后,json_decode(xxx, true);,再根据字段返回就行。读取一行使用fgets

  2. 用正则匹配筛选。

因为我确定只要PayDeclareAmount后面的值
匹配规则 $checktxt="/^PayDeclareAmount&/"这样定义,问题是后面的值如何取出呢?

<code>public function getText(){
        $file=APPPATH.'upload/aaa.txt';
        $content=file($file);
        foreach ($content as $cont){
            echo $cont."<br>";
            }
        }</code>

我就讲文本列了出来 后面卡主了

正则好想有一个indexOf属性,返回匹配到的index值,你匹配到‘{’符号,往后截取全部,不就得到了一个json格式的字符串了吗,那后面的就好办了

谢邀。

<code>json_decode("json字符串", true)["PayDeclareAmount"] 即可。</code>

学习一下 大家的回答真好

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn