相关疑难解决方法(0)

PHP json_encode将数字编码为字符串

我有一个PHP json_encode函数的问题.它将数字编码为字符串,例如

array('id' => 3)
Run Code Online (Sandbox Code Playgroud)

"{ ["id": "3", ...)
Run Code Online (Sandbox Code Playgroud)

当js遇到这些值时,它会将它们解释为字符串,并且数值操作会失败.有谁知道一些方法来防止json_encode编码数字作为字符串?谢谢!

javascript php json

132
推荐指数
5
解决办法
12万
查看次数

如何在MySQL中将结果表转换为JSON数组

我想在MySQL中将结果表转换为JSON数组,最好只使用普通的MySQL命令.例如查询

SELECT name, phone FROM person;

| name | phone |
| Jack | 12345 |
| John | 23455 |
Run Code Online (Sandbox Code Playgroud)

预期的JSON输出将是

[
  {
    "name": "Jack",
    "phone": 12345
  },
  {
    "name": "John",
    "phone": 23455
  }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法在普通的MySQL中做到这一点?

编辑:

有一些答案如何使用例如MySQL和PHP,但我找不到纯MySQL解决方案.

mysql json etl data-conversion

34
推荐指数
5
解决办法
5万
查看次数

将mysqli结果转换为json

我有一个mysqli查询,我需要格式化为移动应用程序的json.

我已经设法为查询结果生成一个xml文档,但是我正在寻找更轻量级的东西.(请参阅下面的我当前的xml代码)

任何帮助或信息都非常感谢人们!

$mysql = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME) or die('There was a problem connecting to the database');

$stmt = $mysql->prepare('SELECT DISTINCT title FROM sections ORDER BY title ASC');
$stmt->execute();
$stmt->bind_result($title);

// create xml format
$doc = new DomDocument('1.0');

// create root node
$root = $doc->createElement('xml');
$root = $doc->appendChild($root);

// add node for each row
while($row = $stmt->fetch()) : 

    $occ = $doc->createElement('data');  
    $occ = $root->appendChild($occ);  

    $child = $doc->createElement('section');  
    $child = $occ->appendChild($child);  
    $value = $doc->createTextNode($title);  
    $value = $child->appendChild($value);  

endwhile;

$xml_string = $doc->saveXML();  

header('Content-Type: …
Run Code Online (Sandbox Code Playgroud)

php json mysqli

27
推荐指数
4
解决办法
7万
查看次数

将PHP结果数组转换为JSON

我想在PHP中将结果数组转换为JSON格式.这是我的代码:

$row = mysql_fetch_array($result)
Run Code Online (Sandbox Code Playgroud)

我想转换$row为JSON格式并将JSON数据传递给jQuery插件.

php json

26
推荐指数
2
解决办法
11万
查看次数

php json_encode两次编码相同的数据

我从数据库中获取一些数据并将其编码为json:

$json = "";
if($result = $dbc->query($query)) {
    $num = $result->num_rows;
    for($i = 0; $i < $num; $i++) {
        $row = $result->fetch_array();
        $json .= json_encode($row);
        if($i != ($num-1)) {
        $json .= ',';
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但不是以格式获取json字符串:

{"name:"joe", "age":"22", "etc":"etc"}
Run Code Online (Sandbox Code Playgroud)

我得到的每个值都是重复的,因为它给了我元素名称作为关联和非关联数组的索引.所以我得到了:

{"0":"joe", "name":"joe", "1":"22", "age":"22", "3":"etc", "etc":"etc"}
Run Code Online (Sandbox Code Playgroud)

虽然我仍然可以使用json.它仍然是我想要它的两倍大小,因此效率不高.无论如何,我可以让json_encode方法只给我关联数组作为json标签?(毫无疑问,用错误的词语来描述这些事情)

非常感谢

php json

8
推荐指数
1
解决办法
5092
查看次数

在PHP中启用json_encode

有人可以建议如何在PHP中启用json_encode函数吗?

我有一个干净的Centos 5.6安装,刚刚安装了Virtualmin.

有谁知道接下来的步骤?

php json encode centos

8
推荐指数
1
解决办法
6万
查看次数

在AJAX调用中从PHP返回JSON对象?

这是我在jQuery AJAX调用期间调用的PHP代码:

<?php
    include '../code_files/conn.php';
    $conn = new Connection();
    $query = 'SELECT Address_1, Address_2, City, State, OfficePhone1, OfficePhone2, Fax1, Fax2, Email_1, Email_2 
              FROM clients WHERE ID = ?';
    $conn->mysqli->stmt_init();
    $stmt = $conn->mysqli->prepare($query);
    $stmt->bind_param('s', $_POST['ID']);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    echo json_encode($row);
?>
Run Code Online (Sandbox Code Playgroud)

客户端代码是:

$.post(url, {ID:$('#ddlClients').val()},
        function(Result){
            // Result
        }
      );
Run Code Online (Sandbox Code Playgroud)

AJAX调用已成功完成.我得到的值,结果

"{"Address_1":"Divisional Office 1","Address_2":"The XYZ Road",.....and so on

我想要的是能够使用返回的值,如Result.Address_1,Result.Address_2等.但我不能使用上面的代码.我试着用$row = $result->fetch_object()$row = $result->fetch_array(),但没有用.

我知道这可以通过服务器端的代码完成:

$row = $result->fetch_assoc();
$retVal = array("Address_1"=>$row['Address_1'], "Address_2"=>$row['Address_2'].......);
echo …
Run Code Online (Sandbox Code Playgroud)

php jquery json

7
推荐指数
2
解决办法
3万
查看次数

在PHP中将MySQL记录集转换为JSON字符串

PHP中是否有函数或类可以传递MySQL记录集,并且我返回一个JSON字符串,可以传递回Ajax请求中的JavaScript函数?

这样的事情:

function recordSetToJson($recordset) {
 while($rs1 = mysql_fetch_row($recordset)) {
  for($count = 0; $count < count($rs1); $count++) {
   //  read and add field to JSON
  }
  $count++;
 }

 return $jasonstring
}
Run Code Online (Sandbox Code Playgroud)

php mysql json

6
推荐指数
2
解决办法
2万
查看次数

PHP:不能用多行编码json

在发布问题之前,我花了几个小时查看几个类似的答案.

我正在从我的数据库中的表中检索数据,我想将其编码为JSON.但是,json_encode()的输出仅在表有一行时才有效.如果有多行,则http://jsonlint.com/上的测试会返回错误.

这是我的查询:

$result = mysql_query($query);

    $rows = array();

    //retrieve and print every record
    while($r = mysql_fetch_assoc($result)){
        $rows['data'] = $r;

        //echo result as json
        echo json_encode($rows);
    }
Run Code Online (Sandbox Code Playgroud)

这让我得到以下JSON:

{
"data": 
    {
        "entry_id":"2",
        "entry_type":"Information Relevant to the Subject",
        "entry":"This is my second entry."
    }
}


{
"data":{
        "entry_id":"1",
        "entry_type":"My Opinion About What Happened",
        "entry":"This is my first entry."
    }
 }
Run Code Online (Sandbox Code Playgroud)

当我在http://jsonlint.com/上运行测试时,它会返回以下错误:

    Parse error on line 29:
    ..."No comment"    }}{    "data": {    
    ---------------------^
    Expecting 'EOF', '}', ',', ']' …
Run Code Online (Sandbox Code Playgroud)

php json

6
推荐指数
1
解决办法
2万
查看次数

使用PHP json_encode()和MySQL返回一个JSON对象以传递给jQuery函数

我正在尝试从MySQL结果创建一个json对象,但没有得到我需要的结果.

这是PHP

$json = array();
$result = mysqli_query ($connection, $query);
    echo '['; 

        while($row = mysqli_fetch_array ($result))     
        {
            echo '{';
            echo '"latitude":"'.$row['lat'].'",';
            echo '"longitude":"'.$row['lng'].'",';
            echo '"icon":'.'"./images/'.$row['busColor'].'.png"';
            echo '}';    
        }
        echo ']';

        $jsonstring = json_encode($json);
        echo $jsonstring;

        die(); 
Run Code Online (Sandbox Code Playgroud)

它输出这个

[{"latitude":"39.976257","longitude":"-83.003464","icon":"./images/pink.png"}][]
Run Code Online (Sandbox Code Playgroud)

但我想要这个

[{"latitude":"39.976257","longitude":"-83.003464","icon":"./images/pink.png"}]
Run Code Online (Sandbox Code Playgroud)

一旦我得到结果,我需要将对象传递给jQuery插件函数,如果这有任何区别

$.getJSON('myJsonURL, function(myMarkers){
  $("#map").goMap({
    markers: myMarkers
  });
});
Run Code Online (Sandbox Code Playgroud)

谢谢

php mysql jquery json google-maps-api-3

4
推荐指数
3
解决办法
6万
查看次数