解析JSON文件以生成并返回带有所需数据的另一个JSON - javascript

我需要为通过HTTP GET传递的开始时间和结束时间之间发生的事件解析给定的JSON文件。然后,应将此范围之间发生的事件作为新的JSON编码响应返回。到目前为止,我已经提出了两种可能的解决方案。似乎都没有给我期望的JSON编码文件。

编辑:除了脚本无法生成正确的JSON文件之外,我在Chrome的开发人员控制台中收到以下错误:Uncaught TypeError:无法读取null的属性“ length”

解决方案1:

  $param1 = $_GET['startTime'];
  $param2 = $_GET['endTime'];
  $data = file_get_contents('./events.json');
  $json = json_decode($data, true);

  foreach ($json as $key => $value){
        if ($value > $param1 && $value < $param2) {
              echo "$key => $value"; }
        else { return; }
  }

解决方案2(传入的参数相同,每个循环都不同):

  foreach ($json as $key => $value){
        if ($value >= $param1 && $value <= $param2) { 
              $tempFile = "tempEvents.json";
              $jsonArray = json_decode(file_get_contents($tempFile), true);
              array_push($jsonArray, array( 'title' => ????, 'start' => $param1, 'end' => $param2 ));
              file_put_contents($file, json_encode($jsonArray));
        }
        else { return; }
        echo json_encode('tempEvents.json');
  }

要解析的示例JSON文件:

  [
   {
    "Name":"Event 1",
    "Start Time":258147369,
    "End Time":369147258
   },
   {
    "Name":"Event 2",
    "Start Time":789456123,
    "End Time":159487263
   },
  ]

参考方案

您应该在数组上使用json_encode以获得格式正确的JSON输出。由于您尚未提供任何示例数据,因此我无法代表您的if语句的有效性,但这是您应该如何进行转换的方法:

$param1 = $_GET['startTime'];
$param2 = $_GET['endTime'];
$data = file_get_contents('./events.json');
$json = json_decode($data, true);
$output = array();

foreach ($json as $key => $value){
    if ($value > $param1 && $value < $param2)
        $output[$key] = $value;
}

$json_out = json_encode($output);
echo $json_out; // this outputs to the browser
// to output to file, use $json_out as your string to write to file

Javascript和Python JSON-未定义变量 - javascript

例如,如果您具有以下JSON对象(删除python的分号):values = { a: 1, b: { c: 2, d: { e: 3 } }, f: 4, g: 5 }; 如果您尝试在JS中打印values,它将正常工作。但是在Python中,它将返回错误NameError: name 'a' is not defined,这意味着未定…

PHP json_encode数组到javascript关联数组 - javascript

我有一些从PHP中读取的mysqli列。它正在完美地获取和回显。$results = mysqli_fetch_assoc(mysqli_query($conn, $querystring)); echo json_encode($results); //$results = {"title":"Sea Shells"…

如何在JQuery中操作JSONArray - javascript

我有一个php函数,它以JSON返回此代码{"0":{"title":"Dans l\u2019appartement"},"1":{"title":"A l\u2019a\u00e9roport - D\u00e9part de B\u00e9at…

JSON.parse需要转义哪些字符 - javascript

                        我注意到您无法在JSON中保存1B(转义)以保存JSON.parse函数,您将得到SyntaxError: Unexpected token(在Google chrome中),需要将其写为unicde \u001b。我在Python中编写了json_serialize函数,我还需要转义字符串中的其他哪些字符?这…

Ajax发布请求将发送的数据附加到返回的JSON - javascript

我有一个像这样的ajax调用:$.ajax({ url: '/assets/functions.php', type: 'POST', data: { "functionCall": "get-uploads", "type": type }, dataTyp…