Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要帮助解析从文件返回的JSON吗_Javascript_Json_Angularjs - Fatal编程技术网

Javascript 需要帮助解析从文件返回的JSON吗

Javascript 需要帮助解析从文件返回的JSON吗,javascript,json,angularjs,Javascript,Json,Angularjs,很抱歉问了一个基本问题,但我觉得这个JSON格式不正确。我正在从返回以下内容的文件中读取此结构: states([{"code":"AL","name":"Alabama"},{"code":"AK","name":"Alaska"},{"code":"AZ","name":"Arizona"}]) 当我在上面做JSON Lint时,它失败了——但这是我必须处理的,因为这是一个独立于我的服务器上的文件 我希望它是var stores=[{stuff}],我还没有看到像上面那样保存的JSON,但

很抱歉问了一个基本问题,但我觉得这个JSON格式不正确。我正在从返回以下内容的文件中读取此结构:

states([{"code":"AL","name":"Alabama"},{"code":"AK","name":"Alaska"},{"code":"AZ","name":"Arizona"}])
当我在上面做JSON Lint时,它失败了——但这是我必须处理的,因为这是一个独立于我的服务器上的文件

我希望它是var stores=[{stuff}],我还没有看到像上面那样保存的JSON,但是再一次-我是noob

我正在使用Angular来阅读这篇文章,下面是我的代码:

var directory = this;
directory.states = [];
$http.get('http://somesite.com/js/states.json').success(function(data){
    directory.states = data;
});
以下是我遇到问题的文件:

如果将文件中的状态视为变量,则会出现未定义的错误:

var state = data.states;
它也不是真正的函数


有什么想法吗?我想我可以把整个事情当作一个字符串来处理,并将状态(部分)分离出来,但我认为有一个更简单的解决方案,我只是缺少了。

这肯定是格式不正确的
JSON
。您显示的格式是一个函数调用(
states(…)
),它需要一个
JSON
-类似于对象的数组(
{“code”:“XX”,“name”:“yyyyy”}
)(根据Pointy的注释,
JSONP

如果它是以字符串格式返回给您的,您可以使用一些字符串运算(
replace
或类似于som的
RegExp
match)来删除返回的函数部分,然后解析其余部分,然后您应该能够将其视为
JSON
提要

EDIT:Pointy关于它是
JSONP
的评论是正确的。如果你准备好处理
JSONP
,那么,这将是处理它的正确方法。如果不是,那么你可以按照我的建议删减“
JSONP
部分”,并能够使用它,就像它是
JSON
提要一样


关于
JSON
JSONP
之间的区别,这里有一个很好的SO线程,供参考:

使用开源项目 JSON在我看来是有效的,去掉了outside status()。我同意它看起来像一个函数调用

您只需执行以下操作:

var result = jinqJs().from('http://someurl').select();

异步调用

jinqJs().from('http://someurl', function(self) {result = self.select();});

这是通过一个
标记源代码到您的页面中的-它是JSONP,而不是JSON。您的页面将具有一个全局“状态”函数,用于处理对象数组。因此,这是JSONP,我仍然无法100%确定现在要做什么-我可以在我的数据对象中获取它-但我需要做什么?