PHP在数组中添加JSON字符串并编码
团队 我试图生成一个JSON字符串,但我一直遇到(我猜)引号的问题 代码:PHP在数组中添加JSON字符串并编码,php,json,encoding,Php,Json,Encoding,团队 我试图生成一个JSON字符串,但我一直遇到(我猜)引号的问题 代码: <?php // JSON data generated $attachment = "[{ 'contentType': 'application/json', 'content': { 'type': 'mytype', 'body': [{ 'type': 'TextInfo', 'text': 'TEST TEXT',
<?php
// JSON data generated
$attachment = "[{
'contentType': 'application/json',
'content': {
'type': 'mytype',
'body': [{
'type': 'TextInfo',
'text': 'TEST TEXT',
'wrap': true
}]
}
}]";
// Add attachment string (JSON data) in an array
$mydata = array(
'space' => "abc",
'markdown' => "**welcome**",
'attachment' => $attachment
);
// Turn array into one big JSON string
$send_json = json_encode($data2);
{
"space": "abc",
"markdown": "**welcome**",
"attachment": [{
'contentType': 'application/json',
'content': {
'type': 'mytype',
'body': [{
'type': 'TextInfo',
'text': 'TEST TEXT',
'wrap': true
}]
}
}]
}
感觉我缺少了一些东西(除了所需的知识;-)。我不明白您的
$attachment
数据是如何“生成JSON数据”的,因为它是无效的JSON…我希望您不是在手工制作JSON字符串。您应该始终只生成一个数组/对象,然后在完成用数据填充iterable变量后调用json\u encode()
- 我已修复了无效的
字符串,方法是将$attachment
替换为“
,反之亦然”
- 要在
中嵌套此数据,您需要首先解码json$mydata['attachment']
- 最后,一旦您的数组数据完全构建完毕,您就可以在
上调用$mydata
。PRETTY\u PRINT标志只是为了帮助本文的可读性json\u encode()
{
"space": "abc",
"markdown": "**welcome**",
"attachment": [
{
"contentType": "application\/json",
"content": {
"type": "mytype",
"body": [
{
"type": "TextInfo",
"text": "TEST TEXT",
"wrap": true
}
]
}
}
]
}
是的,不要尝试手动构建JSON字符串。创建一个具有正确内容和形状的类或数组,然后在其上使用
JSON\u encode()
生成JSON字符串。不确定为什么要将子对象放在数组中,因为每个casety中只有一个对象这应该给你一个在js中使用的对象,而不是数组。
{
"space": "abc",
"markdown": "**welcome**",
"attachment": [
{
"contentType": "application\/json",
"content": {
"type": "mytype",
"body": [
{
"type": "TextInfo",
"text": "TEST TEXT",
"wrap": true
}
]
}
}
]
}