【问题标题】:How to get only json values from a json list without the labels or tags如何从没有标签或标签的 json 列表中仅获取 json 值
【发布时间】:2022-08-17 16:08:45
【问题描述】:

我有一个来自 MySQL 数据库的数据列表,我想用下拉按钮显示它们。它起作用了,只是它以 json 格式显示列表项,如下图所示。如何让它只显示没有花括号和标签的值?

从 MySQL 数据库中获取数据的代码是:

<?php require_once(\"connect.php\") ?>

<?php

$res = $con->query(\"SELECT businessName FROM sellertable\");

$list = array();

if($res){
    while($row = mysqli_fetch_assoc($res)){
        $list[] = $row;
    }

    echo json_encode($list, JSON_INVALID_UTF8_IGNORE | JSON_INVALID_UTF8_SUBSTITUTE | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_HEX_QUOT); 
}

?>

颤振代码加上下拉按钮代码如下所示:

//Retrieving Business Company Name From Database

late String onlythecompany = thecompany; //url to the php script above

  var onlyCompany = [];

  justTheCompany() async {
    var response = await http.get(Uri.parse(onlythecompany));
    if (response.statusCode == 200) {
      setState(() {
        onlyCompany = json.decode(response.body);
      });
    }
    return onlyCompany;
  }

//body area with dropdown button

Container(
                  width: double.infinity,
                  decoration: BoxDecoration(
                    border: Border(
                      bottom: BorderSide(
                          width: 1,
                          color: globalInfoColor,
                          style: BorderStyle.solid),
                    ),
                  ),
                  child: DropdownButtonHideUnderline(
                    child: DropdownButton(
                      value: onlyCompany[0]
                          .toString(),
                      items: onlyCompany.map((ditem) {
                        return DropdownMenuItem(
                          child: Text(
                            ditem.toString()
                          ),
                          value: ditem.toString(),
                        );
                      }).toList(),
                      onChanged: (String? dValue1) {
                        setState(() {
                          onlyCompany[0] = dValue1!;
                        });
                      },
                    ),
                  ),
                ),

知道如何获取企业名称,例如Chick\'s 只需找到 JFK\'s、Festova Farms 等,没有大括号和标签 \'businessName\':?

    标签: php mysql flutter dart


    【解决方案1】:

    要么使用mysqli_fetch_column

    if($res){
        while($row = mysqli_fetch_column($res)){
            $list[] = $row;
        }
    
        echo json_encode($list, JSON_INVALID_UTF8_IGNORE | JSON_INVALID_UTF8_SUBSTITUTE | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_HEX_QUOT); 
    }
    

    或者使用array_column:

    if($res){
        while($row = mysqli_fetch_assoc($res)){
            $list[] = $row;
        }
    
        $list = array_column($list, 'businessName');
    
        echo json_encode($list, JSON_INVALID_UTF8_IGNORE | JSON_INVALID_UTF8_SUBSTITUTE | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_HEX_QUOT); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-16
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多