当前位置: 首页 > 知识库问答 >
问题:

删除JSON中的引号,并用方括号替换花括号

马嘉勋
2023-03-14

我试图创建一个数据数组与FLOT图表一起使用。我使用这个CodeIgniter代码来生成数组:

function ajaxmuniChart1c(){
$muni = $this->input->POST('muni');
$q = $this->db->query("SELECT SaleYear AS Y, NewSaleType AS T, count(*) AS C, format((sum(SalePrice) / sum(Quantity1)),0) AS R FROM tblsales WHERE  tblsales.SaleYear > 2007 AND tblsales.Quantity1 > 2000 AND (tblsales.NewSaleType = 'Industrial') AND tblsales.Municipality = '".$muni."' GROUP BY T,Y ORDER BY T,Y");
$json_Array    = array();
foreach ($q->result_array() as $row){
    $JsonArray[] = array( floatval($row['Y']) => floatval($row['R']) );
}
$labeledArray = array( 
    "label" => "Average Sale Price per SF",
    "data" => $JsonArray
);
echo json_encode($labeledArray);
exit;
}

这段代码的问题是无法绘制生成的JSON对象,因为“值”实际上是字符串。以下是有问题的JSON输出:

 {"label":"Average Price","data":[{"2008":96},{"2009":74},{"2010":73},{"2011":96},{"2012":124},{"2013":104}]}

这个JSON有三个问题:

  1. 需要方括号而不是花括号;和

以下是JSON输出的格式:

 ["label":"Average Price","data":[[2008,96],[2009,74],[2010,73],[2011,96],[2012,124],[2013,104]]]

清理这个JSON对象的最佳方法是什么?我应该在服务器端使用CodeIgniter代码吗?或者我应该在javascript中的客户端在JSON对象完成后做这件事?谢谢。

共有1个答案

朱兴运
2023-03-14

由于生成了该JSON,因此可以更改其源。

$JsonArray[] = array( floatval($row['Y']) => floatval($row['R']) );

--

$JsonArray[] = array( floatval($row['Y']), floatval($row['R']) );

(这将像{2008:80}这样的数组更改为[2008,80]

 类似资料:
  • 以下是降价文本的示例: #“我的标题” !图像标题。{ 样式=“浮动:右; 宽度: 20%; 边框: 1px”} 有的“引用文字”,有的*“强调文字”*等。 在bash脚本中,我试图用法语引号替换任何双引号。 例如:“word”应变成« 换句话说,一个单词前的所有引号都应该替换为一个开放的法语引号,后跟一个不间断的空格;而且一个单词后面的所有引号都要换成一个不换行的空格后面跟着一个闭合的法语引号;

  • 我有一个类型TEXT的PostgreSQL列中的数据,我需要做一些字符替换。具体来说,我想用大括号代替方括号。问题是,我只想替换不超过两层深的括号,如果你包括主要的封闭括号。这些字符串可能很长,所以我认为正则表达式可能是最好的方法(函数),但我不擅长正则表达式。这里有一个这样的值的例子: 因此,我希望此字符串更改为: 提前谢谢!

  • 问题内容: 我有一个像下面这样的json字符串 我想从字符串中删除/删除第一个和最后一个方括号。所以我将如何使用JavaScript从上述字符串中删除第一个和最后一个方括号。 请帮我 问题答案: 请参阅此Codepen示例

  • Note: 这个特性从 FreeMarker 2.3.4 版本后才存在。 FreeMarker支持一个替换的语法。就是在FreeMarker的指令和注释中用 [ 和 ] 来代替 < 和 >,例如下面这个例子: 调用预定义指令:[#list animals as animal]...[/#list] 调用自定义指令:[@myMacro /] 注释:[#-- the comment --] 为了使用这

  • 我有一个字符串: 我正在从CSV导入数据,我想用这些数据替换花括号之间的项。 如何将中花括号中的项替换为中键的等效值?