gpt4 book ai didi

php - 带有特殊字符的 Json_decode

转载 作者:IT王子 更新时间:2023-10-29 00:02:12 24 4
gpt4 key购买 nike

我在通过 jQuery Ajax 将数据作为 JSON 发布到我的服务器时遇到了一个大问题。 JSLint 表示数据正常,请求的 Content-Type 设置为 application/x-www-form-urlencoded;字符集=UTF-8。服务器在 PHP 5.2.11 上运行,所以我不能使用 json_last_error()

我尝试了 url_decode、utf8_decode 和 html_entities_decode,但似乎没有任何效果。

var_dump(json_decode($jdata)); 返回 null,但如果我执行 var_dump($jdata) 一切看起来都正常。 $jdata为post数据:$jdata = $this->input->post('requestdata');.

这里是一些从 Firebug 获取帖子数据的例子:

{
"projectnumber": "345",
"projecdescription": "345",
"articles": [
{
"position": 1,
"article_id": 677,
"online_text": "3 Behälter; Band I-III nach indiv. Stückliste, Sprache: DE - Sprache: de"
},
{
"position": 2,
"article_id": 678,
"online_text": "2 Behälter; Band I-III nach indiv. Stückliste, Sprache: ### - Sprache: en"
}
]
}

编辑:

我现在试过了:

$string = $this->input->post('requestdata');
var_dump($string);
$json = preg_replace('/,\s*([\]}])/m', '$1', utf8_encode($string));
$json = json_decode($json);
var_dump($json);

结果是:

string(338) "{"projectnumber": "4444", "projecdescription": "4444", "articles": [{"position":1, "article_id": 676, "online_text": "### Behälter; Band I-III nach indiv. Stückliste, Sprache: DE - Sprache: de"}, {"position":2, "article_id": 681, "online_text": "### Behälter; Band I-III nach indiv. Stückliste, Sprache: ### - Sprache: en"}]}" NULL

通过将 JSON 字符串直接粘贴到 PHP 源中它可以工作,但不能从 post 中获取它!

最佳答案

由于字符串中的新行,您遇到了错误

$string = '{"projectnumber" : "4444","projecdescription" : "4444", "articles" : [{"position":1, "article_id" : 676, "online_text" : "### Behälter; Band I-III nach indiv. Stückliste, Sprache: DE 
- Sprache: de"},{"position":2, "article_id" : 681, "online_text" : "### Behälter; Band I-III nach indiv. Stückliste, Sprache: ###
- Sprache: en"}]}';


$string = preg_replace("/[\r\n]+/", " ", $string);
$json = utf8_encode($string);
$json = json_decode($json);
var_dump($json);

输出

object(stdClass)[1]
public 'projectnumber' => string '4444' (length=4)
public 'projecdescription' => string '4444' (length=4)
public 'articles' =>
array
0 =>
object(stdClass)[2]
public 'position' => int 1
public 'article_id' => int 676
public 'online_text' => string '### Behälter; Band I-III nach indiv. Stückliste, Sprache: DE - Sprache: de' (length=78)
1 =>
object(stdClass)[3]
public 'position' => int 2
public 'article_id' => int 681
public 'online_text' => string '### Behälter; Band I-III nach indiv. Stückliste, Sprache: ### - Sprache: en' (length=79)

关于php - 带有特殊字符的 Json_decode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12911536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com