在下拉菜单中打印JSON字符串

时间:2012-08-21 13:36:40

标签: php json

我在下拉菜单中生成JSON字符串的值时出现问题。我有一个JSON API

http://service.proventustechnologies.com/api/json?username=demo&token=4ce26206-025d-11dc-8314-0800200c9a66&method=getattributevalues&dimensionId=10

当您点击它时,您会看到许多这样的值。

{
"response": {
    "id": 10,
    "values": [
        {
            "id": 258,
            "value": "Cameras"
        },
        {
            "id": 2581,
            "value": "GPS Navigation"
        },
        {
            "id": 259,
            "value": "MP3 Players"
        },
        {
            "id": 260,
            "value": "Cell Phone/PDA"
        },
        {
            "id": 6377,
            "value": "Digital Photo Frame"
        },
        {
            "id": 110,
            "value": "Motherboard"
        },
        {
            "id": 108,
            "value": "Desktop/Server"
        },
        {
            "id": 109,
            "value": "Notebook"
        },
        {
            "id": 10738,
            "value": "E-Book Reader"
        }
    ],
    "name": "System Type"
},
"status": "ok"

}

我想在下拉菜单中打印所有值,例如相机,GPS导航。感谢您提供任何帮助。

3 个答案:

答案 0 :(得分:1)

使用json_decode将json编码的字符串转换为PHP变量:

<?php
  $json = file_get_contents($your_url);

  $obj = json_decode($json);
  echo $obj->response->id; // prints 10 (based on your sample code)
?>

答案 1 :(得分:0)

我无法真正了解您的知识水平,但您应该在html select元素中加载数据,例如:

<?php
    echo '<select>';

    $jsonData = file_get_contents($url); 
    $jsonDataObject = json_decode($jsonData);

    foreach($jsonDataObject->response->values as $option){
        echo '<option value=' . $option->id . '>' . $option->value . '</option>';
    }

    echo '</select>';
?>

答案 2 :(得分:0)

hridaynehu,                  使用json数组值很容易填充选择框。请遵循以下代码行。

<?php
     $url = 'http://service.proventustechnologies.com/api/json?username=demo&token=4ce26206-025d-11dc-8314-0800200c9a66&method=getattributevalues&dimensionId=10';
    $content = file_get_contents($url);
    $jsonArray = json_decode($content, true);?> 


<select name="json_populate"><?php 
    foreach($jsonArray->response->values as $jsonValue) { ?>
        <option value="<?php echo $jsonValue->id; ?>"><?php echo $jsonValue->value; ?></option>
    <?php } ?>
</select>

如果有帮助,请标记答案。因为它也可以帮助别人。

感谢&amp;问候, Sanjoy Dey