似乎无法解码的 json 编码字符串

Posted

技术标签:

【中文标题】似乎无法解码的 json 编码字符串【英文标题】:json_encoded String that cannot appear to be decoded 【发布时间】:2015-02-25 20:43:24 【问题描述】:

我已经成功地为一个自定义对象生成了下面的 json 表示。但是,当我使用 json_decode(jsonObjectBelow) 时,我没有成功地将其转换为数组。我终于找到了为什么会这样。如果我删除带有重音符号的字符,例如“Muñoz-Gómez”,那么 json_decode(jsonObjectBelow) 可以工作,并且我能够生成我的数组并提取属性。出于实际目的,我无法搜索所有属性并删除这些重音...有解决方案吗?

json_object received: ["abstractText":"Fevers of unknown origin (FUOs) may be due to any of over 200 different disorders. We present a most unusual case of an FUO in a returning traveler from the Dominican Republic. Work-up for Q fever, Brucellosis, Bartonella, malaria and HIV were negative, but very highly elevated ESRs and ferritin levels suggested possible Legionnaire\u0027s disease. This is the third reported case of Legionnaire\u0027s disease presenting as an FUO.","authorString":"Muñoz-Gómez S, Cunha BA.","issue":"1","journalTitle":"Heart Lung","pageInfo":"72-74","pmid":"25444558","pubYear":"2015","title":"Fever of unknown origin (FUO) due to Legionnaire\u0027s disease.","volume":"44"]

此代码适用于没有重音的属性中的文本,但不适用于带有重音的文本。 我的php代码:

     //Get JSON POST
       $json = $_POST["jsonObj"];

     //Decode JSON into an Array
      $data = json_decode($json);

     for($i = 0; $i<count($data); $i++)

     echo "[".$i."]" . " " .$data[$i]->authorString . "/  " . $data[$i]->journalTitle . "<br>";
     

【问题讨论】:

***.com/a/4077088/1169798 可能会有所帮助。 【参考方案1】:

如果可能,尝试对值进行编码并发送 json 对象。请尝试以下链接中的步骤:

UTF-8 character encoding battles json_encode()

【讨论】:

以上是关于似乎无法解码的 json 编码字符串的主要内容,如果未能解决你的问题,请参考以下文章

kendoui parameterMap 解码 php 对象的正确 json 编码是啥?

Python,Docker - “ascii”编解码器无法编码字符

在 kotlinx.serialization 中编码/解码 JSON“字符串”

golang json 编码解码

Swift Codable - 如何编码和解码字符串化的 JSON 值?

jsoncpp 解码编码 中文为空 乱码问题