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

在Ajax中解析Json,错误

许照
2023-03-14

代码:

$.ajax({
        type: "POST",
        url: "API URL",
        data: JSON.stringify(User),
        dataType : "json",
        success: function(apiResponse) {
            var session = apiResponse.sessionId;
            console.log ("Session : "+ session);

            $.ajax({
                type: "GET",
                url: "ANOTHER URL",
                dataType : "jsonp",
                contentType: "jsonp",
                success: function(apiResponse) {
                    console.log (apiResponse);
                    jQuery.each(apiResponse,function(){
                         console.log (apiResponse);
                                            });
                     },
                error: function(apiResponse) {
                    alert("error  : " +apiResponse);
                }
            });
        },
        error: function(apiResponse) {
            alert("error  : " +apiResponse);
        }

===========

返回json数据的php代码

<?php

$jsonp = false;
if ( isset( $_GET[ 'callback' ] ) ) {
    $_GET[ 'callback' ] = strip_tags( $_GET[ 'callback' ] );
    $jsonp              = true;
    $pre  = $_GET[ 'callback' ] . '(';
    $post = ');';
  } //isset( $_GET[ 'callback' ] )

 /* Encode JSON, and if jsonp is true, then ouput with the callback
 ** function; if not - just output JSON. */
 $json = json_encode( '{"top cat1":[{"id":"cat1", "name":"product1"}, {"id":"cat2", "name":"product 2"}], "top cat2":[{"id":"cat3", "name":"product 3"}, {"id":"cat4", "name":"product 4"}]}' );
print( ( $jsonp ) ? $pre . $json . $post : $json );

另一个URL返回以下数据

  {"top cat1":[{"id":"cat1", "name":"product1"}, {"id":"cat2", "name":"product 2"}], "top cat2":[{"id":"cat3", "name":"product 3"}, {"id":"cat4", "name":"product 4"}]}

===================现在,我遇到以下错误(还提到console.log resp)

   Session : 67a47816-5a03-44f9-ab24-01e1e8d4aad1

  {"top cat1":[{"id":"cat1", "name":"product1"}, {"id":"cat2", "name":"product 2"}], "top cat2":[{"id":"cat3", "name":"product 3"}, {"id":"cat4", "name":"product 4"}]}

   TypeError: invalid 'in' operand e
   [Break On This Error]    

   ...ute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r...

=======================

我想要的是1。解析Json响应。“顶级Cat1”将在其下方列出标题列表。

我做错了什么。

共有1个答案

邬友樵
2023-03-14

为什么要在已经json编码的字符串中使用函数json_encode?

$json = json_encode( '{"top cat1":[{"id":"cat1", "name":"product1"}, {"id":"cat2", "name":"product 2"}], "top cat2":[{"id":"cat3", "name":"product 3"}, {"id":"cat4", "name":"product 4"}]}' );

通常,您应该使用:

$json = '"top cat1":[{"id":"cat1", "name":"product1"}, {"id":"cat2", "name":"product 2"}], "top cat2":[{"id":"cat3", "name":"product 3"}, {"id":"cat4", "name":"product 4"}]}';

如果您有以下情况,则应使用json_encode:

$arrayTemp = array("top cat1"=>array(array("id"=>"cat1","name"=>"product1"),array("id"=>"cat2","name"=>"product 2")),"top cat2"=>array(array("id"=>"cat3","name"=>"product 3"),array("id"=>"cat4","name"=>"product 4")));

$json = json_encode($arrayTemp);
 类似资料:
  • 问题内容: 我正在使用jquery调用ajax wcf方法,该方法将对象列表作为JSON字符串返回。在fiddler2中(在TextView中)检查时,JSON字符串如下所示: 当我在提琴手的JSON视图中检查结果时,它显示以下JSON: 因此,提琴手可以成功解析它,但是在客户端上,jQuery ajax错误回调函数显示以下错误: wcf方法的定义如下: 最后,调用的jQuery是: 提前致谢!

  • 问题内容: 我正在尝试使用以下代码解析通过json从Web服务返回的一些数据。 返回的数据是这个。 尽管jsut发出的警报返回未定义的内容。所以我知道我丢失了一些东西,这可能与JSON的嵌套有关。有人可以为我指出一些材料或代码的正确说明,这些材料或代码向我展示了如何遍历数据(如我所接收的数据)。 问题答案: 尝试以下方法: 继续读那个怪异的东西。

  • 我有一个简单的springboot程序,它接受json并打印出来。主要目的是使用json验证程序包,但当前的上下文是基本的请求解析。问题是,当我试图将输入请求映射到一个类实体时,它给出了以下错误:“org.springframework.http.converter.httpMessageEndableException”,。 > 控制器(Hello.java): Java类实体: 公共类Demo

  • 2)尝试通过执行两个string_replace来修复JSON字符串 需要注意的一点是,JSON字符串很长(大约50KB),并且包含很多条目。

  • 问题内容: 尝试对mongoexport使用查询会导致错误。但是mongo-client会评估相同的查询,而不会出错。 在mongo-client中: 使用mongoexport: 产生的错误: 但是预先在mongoexport中进行乘法: 作品! 为什么mongo在这两种情况下对查询的评估不同? 问题答案: 该命令行实用程序支持传递查询 JSON 格式,但您要评估 的JavaScript 在您的

  • 和 是我用来获取JSON并对其进行解析的类。但是当我运行第一个时,它会报告以下堆栈跟踪: 它告诉我添加JsonReader。将lenient(true)设置为我的代码,但我的代码不使用JsonReader。那么如何将setLenient(true)添加到代码中? 编辑:添加API响应(格式化):