Javascript 如何获取JSON文本的特定部分

Javascript 如何获取JSON文本的特定部分,javascript,json,Javascript,Json,我有一个PHP文件,用于创建MySQL数据的JSON文本 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <title>Sample Page</title> <script> var settings = { "async": tru

我有一个PHP文件,用于创建MySQL数据的JSON文本

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <title>Sample Page</title>
  <script>
     var settings = {
       "async": true,
       "crossDomain": true,
       "url": "http://www.hotel1.com/Experiment/Api/Json1.php?ID=1",
       "method": "GET"
     }

     $.ajax(settings).done(function (response) {
       console.log(response);
       console.log(response.something.something)
     });
  </script>
在上面,您可以看到正在打印的JSON文本。我的问题是我想知道如何在JavaScript中从JSON文本中选择ID。如上所示。当我试图说response.Worker1.ID时,它会给我一个错误,说ID未定义


有人能帮我纠正我的错误吗?

看起来您没有正确引用json对象属性“ID”。太近了!尝试以下代码并了解其工作原理:

[{“Worker1”:{“ID::“1”,“Username:“Tony”}]


您需要将JSON解析为javascript对象。使用
JSON.parse()
,如下所示:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <title>Sample Page</title>
  <script>
     var settings = {
       "async": true,
       "crossDomain": true,
       "url": "http://www.hotel1.com/Experiment/Api/Json1.php?ID=1",
       "method": "GET"
     }

     $.ajax(settings).done(function (response) {
       response = JSON.parse(response); // the change is here
       console.log(response);
       console.log(response.something.something)
     });
  </script>

样本页
变量设置={
“异步”:true,
“跨域”:正确,
“url”:”http://www.hotel1.com/Experiment/Api/Json1.php?ID=1",
“方法”:“获取”
}
$.ajax(设置).done(函数(响应){
response=JSON.parse(response);//这里有更改
控制台日志(响应);
console.log(response.something.something)
});

还要记住,您的“示例json”返回一个数组,因此使用方括号
[]
。所以要访问,您需要执行
response[0]。这不是读取javascript对象的方法。MCA我尝试过,但它说Worker1没有定义运行console.log(typeof response)和LMK,如果您获取的是JSON对象或字符串!马华。我得到了stringMCA型。您知道如何解析jsonIs的
响应
json字符串或json对象吗?如果是“json字符串”,则修改“设置”以自动解析为json对象,或在解析后调用
json.parse()
如何仅提取您正在使用此解决方案的工作人员1的ID,然后
console.log(response)
将显示数据结构。但是,如果我查看您的示例数据,则可能是
响应[0]。Worker1.ID
@GetSet现在我有一个文本框,希望用户在文本框中输入示例:Worker1并显示结果。我该怎么做。示例:response[index].variable.IDSo我们可以继续讨论另一个主题,用您的代码示例打开新的线程/问题。这样我们就可以专注于用户界面方面。
console.log(response[Worker1].ID)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <title>Sample Page</title>
  <script>
     var settings = {
       "async": true,
       "crossDomain": true,
       "url": "http://www.hotel1.com/Experiment/Api/Json1.php?ID=1",
       "method": "GET"
     }

     $.ajax(settings).done(function (response) {
       response = JSON.parse(response); // the change is here
       console.log(response);
       console.log(response.something.something)
     });
  </script>