我正在尝试为google maps API创建一个json供稿。
我可以生成的JSON Feed是:
while($data = $do->FetchRow($search)) {
//print_r($data);
$a = array();
$a[] = array("latitude" => $data['latitude'], "longitude" => $data['longitude'], "title" => $data['listno'], "content" => "test");
echo json_encode($a);
//echo json_encode(array("markers" => $a), JSON_UNESCAPED_SLASHES);
}
生成此Feed的代码是:
var json = [{"title":"Helgelandskysten","longitude":"12.63376","latitude":"66.02219"},{"title":"Tysfjord","longitude":"16.50279","latitude":"68.03515"},{"title":"Sledehunds-ekspedisjon","longitude":"7.53744","latitude":"60.08929"},{"title":"Amundsens sydpolferd","longitude":"11.38411","latitude":"62.57481"},{"title":"Vikingtokt","longitude":"6.96781","latitude":"60.96335"},{"title":"Tungtvann- sabotasjen","longitude":"8.49139","latitude":"59.87111"}];
我需要的是,生成的数组如下所示:
public static string AlphaToAscii(string str)
{
var result = string.Empty;
foreach (char c in str)
{
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
result += (int)c;
else if (c >= '0' && c <= '9')
result += c;
}
return result;
}
我尝试过使用数组合并,数组推送等等。我很难过,有人想要一个好的谜题吗? :)
答案 0 :(得分:1)
只是:
echo json_encode(array("latitude" => $data['latitude'], "longitude" => $data['longitude'], "title" => $data['listno'], "content" => "test"));
因为我猜你只有一行,所以应该这样做。
答案 1 :(得分:1)
好的,你正在做的事情有几个问题。首先,你是为每个单独的行回显一个json编码的字符串,因为你在循环中调用它。这就是你在生成的字符串中最终得到几个[]数组的原因。
您需要做的是:
$a = array();
while($data = $do->FetchRow($search)) {
$a[] = array("latitude" => $data['latitude'], "longitude" => $data['longitude'], "title" => $data['listno']);
}
echo json_encode($a);
另外,你得到一个数字而不是你想要的标题。我无法直接帮助你,但你正在使用:
$data['listno']
作为标题,我认为实际上代表“列表编号”。您很可能不得不使用字段“title”(如果存在)或修改搜索查询。