使用ODBC,我将filemaker连接到mysql数据库。在mysql数据库记录中,我有一个看起来像这样的字段......
[{"id":"1","value":"Jonny Miller"},{"id":"2","value":"22"},{"id":"3","value":"1"}]
并且所有记录中的其他字段都相同。
我想将'id','value','Jonny Miller'等分开......但不知道如何去做。请你能让我知道我需要做什么或者把我指到哪里,我可以看看怎么做?
感谢您的帮助
Stef
答案 0 :(得分:1)
<?php
$str='[{"id":"1","value":"Jonny Miller"},{"id":"2","value":"22"},{"id":"3","value":"1"}]';
$a=json_decode($str,true);
print_r($a);
答案 1 :(得分:1)
if(!function_exists('json_decode'))
{
function json_decode($json)
{
$comment = false;
$out = '$x=';
for ($i=0; $i<strlen($json); $i++)
{
if (!$comment)
{
if (($json[$i] == '{') || ($json[$i] == '['))
$out .= ' array(';
else if (($json[$i] == '}') || ($json[$i] == ']'))
$out .= ')';
else if ($json[$i] == ':')
$out .= '=>';
else
$out .= $json[$i];
}
else
$out .= $json[$i];
if ($json[$i] == '"' && $json[($i-1)]!="\\")
$comment = !$comment;
}
eval($out . ';');
return $x;
}
}
$str = '[{"id":"1","value":"Jonny Miller"},{"id":"2","value":"22"},{"id":"3","value":"1"}]';
$str = json_decode($str);
foreach ($str as $key => $value) {
echo $value['id'] . " " . $value['value'] . "<br>";
}
注意:我也发布了 json_decode 函数,因为它在新版本的php中不再可用(旧版本也不支持)
答案 2 :(得分:1)
我假设您正在尝试使用FileMaker解析返回的数据。 FileMaker本身不支持json解析(令我非常沮丧:P)。您可以使用一些优秀的时尚文本解析来访问数据。我非常详细地写了这个let语句(即你可以将很多步骤压缩成更少的步骤,但是这个let语句分别显示每个步骤,因此它更容易学习(我认为)):
Let ( [
input = $currentValue;
key = "id"; // Change this to the key you want to pull the value for
keyStartPosition = Position (input ; key ; 0 ; 1 );
valueStartPosition = Position ( input ; "\"" ; keyStartPosition ; 2 );
valueEndPosition = Position ( input ; "\"" ; valueStartPosition ; 2 );
value = Middle (input ; valueStartPosition + 1 ; valueEndPosition - valueStartPosition - 1)
];
value
)
使用此代码,您可以编写一个脚本,将json“爆炸”为返回分隔值:
Substitute ( Get ( ScriptParameter ) ; "},{" ; ¶ )
然后,您可以循环遍历每个值,并提取您在let语句中指定的给定ID的值。不幸的是,我无法将FileMaker脚本代码粘贴为此处的代码块,但这里是您将使用的脚本的图像:
我相信还有一些插件可以用来解析json,但是这也可以完成它。
希望这有帮助!
答案 3 :(得分:0)
在FileMaker中有各种自定义函数库用于解析JSON结构。您需要FileMaker Pro Advanced将它们集成到您的解决方案中。 Google快速搜索产生了http://www.modularfilemaker.org/2013/08/json/。