相关疑难解决方法(0)

解析JSON给出"意外令牌o"错误

我在解析简单的JSON字符串时遇到问题.我在JSONLint上检查了它们,它表明它们是有效的.但是当我尝试使用其中任何一个JSON.parse或jQuery替代解析它时,它会给我错误unexpected token o:

<!doctype HTML>
<html>
  <head>
  </head>
  <body>
    <script type="text/javascript">
      var cur_ques_details ={"ques_id":15,"ques_title":"jlkjlkjlkjljl"};
      var ques_list = JSON.parse(cur_ques_details);

      document.write(ques_list['ques_title']);
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

注意:我正在使用json_encode()PHP编写我的字符串.

javascript json

434
推荐指数
7
解决办法
65万
查看次数

Uncaught SyntaxError:带有JSON.parse的意外标记

什么原因导致第三行出现此错误?

var products = [{
  "name": "Pizza",
  "price": "10",
  "quantity": "7"
}, {
  "name": "Cerveja",
  "price": "12",
  "quantity": "5"
}, {
  "name": "Hamburguer",
  "price": "10",
  "quantity": "2"
}, {
  "name": "Fraldas",
  "price": "6",
  "quantity": "2"
}];
console.log(products);
var b = JSON.parse(products); //unexpected token o
Run Code Online (Sandbox Code Playgroud)

打开控制台以查看错误

javascript jquery json

169
推荐指数
8
解决办法
77万
查看次数

JSON.Parse,'未捕获的SyntaxError:意外的令牌o

我遇到了从Web服务返回的JSON的问题.看起来JSON缺少引号,但是当我向JSON添加引号时,我收到错误.以下是错误消息:'Uncaught SyntaxError:Unexpected token o.当我将字符串记录到控制台时:[object Object],[object Object]

以下是一些模拟错误的示例代码:

//Error I am trying to solve
var jsonString = '[{"Id":"10","Name":"Matt"},{"Id":"1","Name":"Rock"}]';
var myData = JSON.parse(jsonString);

$(document).ready(function() {
    var $grouplist = $('#groups');
    $.each(myData, function() {
        $('<li>' + this.Name + '</li>').appendTo($grouplist);
    });
});
Run Code Online (Sandbox Code Playgroud)

这是与字符串周围的单引号相同的代码.有用

//Successful Javascript
var jsonString = '[{"Id":"10","Name":"Matt"},{"Id":"1","Name":"Rock"}]';
var myData = JSON.parse(jsonString);

$(document).ready(function() {
    var $grouplist = $('#groups');
    $.each(myData, function() {
        $('<li>' + this.Name + '</li>').appendTo($grouplist);
    });
});

//Successful HTML
<ul id="groups"></ul>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在字符串中添加引号时,就像我似乎需要在我的实际代码中一样,它失败了:

//Does not work when I need to append quotes to the …
Run Code Online (Sandbox Code Playgroud)

javascript json

41
推荐指数
1
解决办法
14万
查看次数

使用$ .parseJSON()和JSON.parse()导致"Uncaught SyntaxError:Unexpected token o"的原因是什么

我已经看过SO和谷歌,但已经注意到这有帮助,我不确定如何继续.我有一个数组,我从一个PHP页面返回使用echo json_encode(),如下所示:

[" "," "," "," "," ",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
Run Code Online (Sandbox Code Playgroud)

但是Unexpected token o at Object.parse (native)当我尝试使用JSON.parse()并且Unexpected token o at Function.parse (native)当我使用JQuery交替时,我不断得到.

但是当我把它附加到$scope我可以在页面上打印出来的时候,那么我做错了什么,我怎么能纠正这个?

这是我的控制器

function myController($scope, memberFactory) {

    response = memberFactory.getMonth("2013-08-01 06:30:00");
    //$scope.response = response;
    var monthDays = $.parseJSON(response);

    var dates = [];
    for (var i = 0; i < monthDays.length; i++) {
        if (i % 7 == 0) dates.push([]);
        dates[dates.length - 1].push(monthDays[i]);
    }
    $scope.dates = dates;
    //
}
Run Code Online (Sandbox Code Playgroud)

这是我的服务方法:

obj.getMonth = function (date) { …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

27
推荐指数
2
解决办法
7万
查看次数

Django模型选择字段 - 取决于其他字段的选择

我需要带有2个字段的django modelform,其中第二个字段选择列表取决于在第一个字段中选择的内容.我的模特:

class Offer(BaseModel):

    VEHICLE_TYPES = (
        ('personal','Personal car'),
        ('truck','Truck'),
    )
    vehicle_type = models.CharField(max_length=32, choices=VEHICLE_TYPES, default='personal', verbose_name='Vehicle type')

    PERSONAL_MAKES = (
        ('',''),
    )
    TRUCK_MAKES = (
        ('',''),
    )
    make = models.CharField(max_length=32)#what more??
Run Code Online (Sandbox Code Playgroud)

如果vehicle_type设置为personal,我如何将make字段的选项设置为PERSONAL_MAKES?我怎样才能做到这一点?是否可以在模型级别?

python django django-models django-forms

13
推荐指数
1
解决办法
6666
查看次数

单元测试时出错:"未捕获(在promise中)SyntaxError:在位置1的JSON中出现意外的标记o"

我想对服务进行单元测试,但是,在运行测试时,我收到以下错误:

未捕获(在promise中)SyntaxError:MapSubscriber.Array中MapSubscriber.Array.concat.MapSubscriber._next(map.js:77)位于MapSubscriber.project(auth.service.ts:217)的位置1的JSON中的意外标记o. concat.Subscriber.next(Subscriber.js:89)在TakeSubscriber.Array.concat.TakeSubscriber._next(take.js:80),位于ReplaySubject.Array的TakeSubscriber.Array.concat.Subscriber.next(Subscriber.js:89) ReplaySubject上的ReplaySubject.Array.concat.Orray.Array.concat.Atry.Subject.Array.concat.Atry.Subject._trySubscribe(Subject.js:97)中的ReplaySubject.Array.concat.Observable._trySubscribe(Observable.js:57).concat.ReplaySubject._subscribe(ReplaySubject.js:55).位于MapOperator的AnonymousSubject.Array.concat.Observable.subscribe(Observable.js:42)的TakeOperator.Array.concat.TakeOperator.call(take.js:60)中的Array.concat.Observable.subscribe(Observable.js:45) .Array.concat.MapOperator.call(map.js:54)位于CatchOperator.Array.concat.CatchOperator.call(catch.js:79)的AnonymousSubject.Array.concat.Observable.subscribe(Observable.js:42)一个 nonymousSubject.Array.concat.Observable.subscribe(Observable.js:42)

相应的行(auth.service.ts:217)在代码中突出显示.运行应用程序完全正常,因此我没有看到测试失败的明显原因.

注意:这个SO帖子表明我正在解析对象两次.但是,当运行应用程序时,它不应该失败吗?

auth.service.ts

public login(username: string, password: string): Observable<User> {
    // ...

    return this.http.request(path, requestOptions).map((response: Response) => {
        if (response.status === 200) {
          const token = response.json().token; // <<-- Uncaught (in promise) SyntaxError: Unexpected token o in JSON at position 1

          const user = this.extractUser(response);
          return user;
        }

        return null;
      })
      .catch(this.handleError);
  }
Run Code Online (Sandbox Code Playgroud)

auth.service.spec.ts

describe('AuthService', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [
        AuthService,
        MockBackend,
        BaseRequestOptions,
        {
          provide: Http, …
Run Code Online (Sandbox Code Playgroud)

json unit-testing mocking angular

6
推荐指数
1
解决办法
3230
查看次数

看似有效的JSON上的JSON.parse错误

我正在使用jquery JSON.parse()来解析json从api(Laravel 5)返回的那个$.get().在json似乎是有效的,但是,JSON.parse()在Safari和Chrome浏览器返回错误.

Chrome说:

Uncaught SyntaxError: Unexpected token o
Run Code Online (Sandbox Code Playgroud)

Safari说:

SyntaxError: JSON Parse error: Unexpected identifier "object"
Run Code Online (Sandbox Code Playgroud)

代码片段如下:

    $.get('/foo/' + product_id, function(data){
        console.log(data);
        var product = JSON.parse(data);
        if (product) {
            // do something
        }
     });
Run Code Online (Sandbox Code Playgroud)

JSON是:

{  
   "id":"1b7b3eb7-8769-48fe-a421-64c105de3eff",
   "parent":null,
   "org_id":"845d0d53-de68-42c3-9007-c3d0e72c555e",
   "category_id":"e58237f7-e040-4098-8d46-b84f8cdf7d83",
   "purchase_tax":null,
   "sale_tax":null,
   "code":"982",
   "name":"Mr. Destin Hoppe",
   "is_purchased":false,
   "is_sold":false,
   "purchase_price":null,
   "selling_price":null,
   "purchase_includes_tax":false,
   "sale_includes_tax":false,
   "created_at":"2015-09-16 17:39:34",
   "updated_at":"2015-09-16 17:39:34"
}
Run Code Online (Sandbox Code Playgroud)

有趣的是,eval()工作得很好.

javascript jquery json laravel-5

3
推荐指数
1
解决办法
2万
查看次数

无法解决错误"Uncaught SyntaxError:Unexpected token o"

我目前正在练习使用Javascript/Dojo.但是,我有一个我无法解决的错误:

未捕获的SyntaxError:意外的令牌o

我已经快速解决了我的问题:

var data = {
    "list": {
        "1": {
            "Relevance": "Low",
            "id": 1,
            "Name": "Inorganic"
        },
        "2": {
            "Relevance": "Low",
            "id": 2,
            "Name": "Mobile"
        }
    }
}

var jsonData = JSON.parse(data);
alert(jsonData.list[1].Name);
Run Code Online (Sandbox Code Playgroud)

它专门针对以下行:

var jsonData = JSON.parse(data);
Run Code Online (Sandbox Code Playgroud)

我想知道为什么这是一个错误以及我将如何解决它.

javascript dojo json

2
推荐指数
1
解决办法
7918
查看次数

我的JSON数据有什么问题?

我正在搞乱构建一个JSON对象,所以我可以将数据库查询的结果推送到它,然后返回填充的JSON数据.但是从get go中遇到问题.

这是我目前的代码:

//var AppenateResString = {name:"777"};

var AppenateResString = {
  "DataSources": [{
    "Id": "TEST",
    "Rows": [
      ["10011", "10011 - Test Generic Project"]
    ],
    "NewRows": [],
    "DeletedRows": []
  }],
  "LastUpdated": ""
};

var AppenateResBody = JSON.parse(AppenateResString);
response.body = JSON.stringify(AppenateResBody);
Run Code Online (Sandbox Code Playgroud)

但这是我得到的错误:

JavaScript Error: SyntaxError: invalid character 'o' looking for beginning of value
    at 
<anonymous>:21:23
--
};

var AppenateResBody = JSON.parse(AppenateResString);
                      ^ Error!
Run Code Online (Sandbox Code Playgroud)

我已经把它缩小到我的JSON布局出错了.或者我是如何构建JSON对象的......或者是一些基本的,"这就是你如何做JSON"的事情.但我无法弄明白.

有任何想法吗?

PS正如你所看到的,我已经注释了我认为构建的一个非常简单的JSON对象...它失败了.

javascript mysql json

2
推荐指数
1
解决办法
756
查看次数

SyntaxError:JSON.parse:JSON第1行第2列的意外字符

我需要将此div附加到另一个div,但它给了我这个错误:

SyntaxError:JSON.parse:JSON数据的第1行第2列的意外字符

这是我的javascript代码:

var str = {'message': message,'text': text};
$.ajax({
    type: "POST",
    url: "api/reply",
    data: str,
    dataType: "json",
    cache: false,
    success: function(response)
    {
        var respons = jQuery.parseJSON(response);
        var type = respons.status
        if (type == 'success') {
            $("<div></div>").html(respons.message).appendTo("#messages");
        }
        else
        {
            toastr.error(respons.message)
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

javascript php ajax jquery json

2
推荐指数
3
解决办法
2万
查看次数

JSON 编码 Flask 到 Javascript

我坐在一个基于 Flask 的网络应用程序上。理论上,我想从磁盘加载一个 JSON 文件并将其提供给网站上的 javascript。

def getData():
    check_for_update()
    with open(LOCAL_file,"rb") as myfile:
        data = json.load(myfile)
    udate = data["today"] 
    return (udate, data)
Run Code Online (Sandbox Code Playgroud)

然后我将它发送到页面

return render_template('./index2.html', udate = thisdata[0], data = json.dumps(thisdata[1]))
Run Code Online (Sandbox Code Playgroud)

现在在页面上我只是尝试

def getData():
    check_for_update()
    with open(LOCAL_file,"rb") as myfile:
        data = json.load(myfile)
    udate = data["today"] 
    return (udate, data)
Run Code Online (Sandbox Code Playgroud)

然后导致这样的事情

在此处输入图片说明

这不能被解析。当我复制和粘贴它时,它工作正常,python 也没有抱怨。

javascript python json flask

2
推荐指数
1
解决办法
1880
查看次数

JSON.parse()抛出意外的令牌错误.不知道为什么?

PHP

<?php

header("Content-type: application/json") ;
echo json_encode(array("reply" => "SOME_TEXT")) ;

?>
Run Code Online (Sandbox Code Playgroud)

它回应了这个 - >

{"reply":"SOME_TEXT"}
Run Code Online (Sandbox Code Playgroud)

使用Javascript

<script>
$.get("script.php" , function(data) {
    var reply = JSON.parse(data) ;
}) ;
</script>
Run Code Online (Sandbox Code Playgroud)

JS抛出unexpected token in JSON.但是如果我用PHP ("Content-type:text/javascript")"text/plain"替换PHP代码中的标题,它将正常工作.

javascript php json

0
推荐指数
1
解决办法
269
查看次数