PHP数组的Javascript对象(字符串格式)

PHP数组的Javascript对象(字符串格式),php,javascript-objects,Php,Javascript Objects,我有数千个javascript对象格式的文本文件(不是JSON),如以下格式; 由于它们不是json,json\u decode函数不适用于它们。谷歌搜索不是很有帮助,而我找到的每一篇文章都是关于PHP到JSO的:( 我需要使用PHP达到此值,但找不到解决方案:( 或 有什么想法吗?您知道您的示例文本是一种JSON字符串吗?您可以通过JSON_解码进行转换 请参见您是否知道示例文本是一种JSON字符串?您可以通过JSON_解码进行转换 请参见也许您可以解析纯文本,以便在对象键中添加缺少的双引号来

我有数千个javascript对象格式的文本文件(不是JSON),如以下格式; 由于它们不是json,
json\u decode
函数不适用于它们。谷歌搜索不是很有帮助,而我找到的每一篇文章都是关于PHP到JSO的:(

我需要使用
PHP
达到此值,但找不到解决方案:(


有什么想法吗?

您知道您的示例文本是一种JSON字符串吗?您可以通过JSON_解码进行转换


请参见

您是否知道示例文本是一种JSON字符串?您可以通过JSON_解码进行转换


请参见

也许您可以解析纯文本,以便在对象键中添加缺少的双引号来修复字符串。类似于:

$str = '{
guid:205, 
  data:{something:"value",
        anotherthing :0,
        thingy: "another value"},
  anotherdata:[[563, "value", 1],
        [564, "value2", 5],
        [565, "value3", 125]],
  onemore:["key", "value"]
}';

$str = preg_replace('/(\w+)\s{0,1}:/', '"\1":', str_replace(array("\r\n", "\r", "\n", "\t"), "", $str));
$array_data = json_decode($str);

这将修复JSON格式错误的字符串,您可以对其进行解码。如果元素的某些值包含一个后跟冒号的文本(即whateverword:)

也许您可以解析纯文本,以便在对象键中添加缺少的双引号来修复字符串。例如:

$str = '{
guid:205, 
  data:{something:"value",
        anotherthing :0,
        thingy: "another value"},
  anotherdata:[[563, "value", 1],
        [564, "value2", 5],
        [565, "value3", 125]],
  onemore:["key", "value"]
}';

$str = preg_replace('/(\w+)\s{0,1}:/', '"\1":', str_replace(array("\r\n", "\r", "\n", "\t"), "", $str));
$array_data = json_decode($str);

这将修复JSON格式错误的字符串,并且您可以对其进行解码。如果元素的某些值包含一个单词后跟冒号的文本(即:whateverword:)

您是否阅读了问题的开头?“我有数千个javascript对象格式的文本文件(不是JSON)与下面的格式类似;因为它们不是json,
json\u decode
函数不适用于它们。”表示JSON必须将其对象键双引号。抱歉,但是
JSON\u decode
不起作用。@FelixKling您能解释一下JSON字符串和javascript对象格式文本文件之间的区别吗???正如michaelb958所说,键必须是字符串(即双引号)让它成为有效的JSON。你读过问题的开头了吗?“我有数千个javascript对象格式的文本文件(不是JSON),就像下面的格式一样;因为它们不是JSON,
JSON\u decode
函数不能使用它们。”表示JSON必须将其对象键双引号。抱歉,但是
JSON\u decode
不起作用。@FelixKling您能解释一下JSON字符串和javascript对象格式文本文件之间的区别吗???正如michaelb958所说,键必须是字符串(即双引号)让它成为有效的JSON。通过查看类似的问题。这不是一个可以用正则表达式简单解决的问题。您提供的js代码如何不是JSON?好的,也许是
[]
数组符号?@anchar,它可能看起来像JSON代码,实际上我认为它是JSON长达4-5个小时:),但它不是有效的json。所以这就是问题所在。我也没有机会编辑它。:(通过查看类似的问题,它可能会重复。这不是一个可以用正则表达式简单解决的问题。你给出的js代码怎么不是json?好的,可能是
[]
array notation?@Anchshar,它可能看起来像json代码,实际上我认为它是json,持续了4-5个小时:),但它不是有效的json。所以这就是问题所在。我也没有机会编辑它。:(可能是
echo $str['anotherdata'][2][1] // value3;
$str = '{
guid:205, 
  data:{something:"value",
        anotherthing :0,
        thingy: "another value"},
  anotherdata:[[563, "value", 1],
        [564, "value2", 5],
        [565, "value3", 125]],
  onemore:["key", "value"]
}';

$str = preg_replace('/(\w+)\s{0,1}:/', '"\1":', str_replace(array("\r\n", "\r", "\n", "\t"), "", $str));
$array_data = json_decode($str);