JSON的基本概念和用法

JSON基本使用

<!DOCTYPE html>

<html>

  <head>

    <title>TestJson.html</title>

  </head>

  <body>

  <h3>获取JSON创建的对象</h3>

    <p>

       NAME:<span id="name"></span><br/>

       ADDRESS:<span id="address"></span><br/>

       AGE:<span id="age"></span><br/>

       PHONE:<span id="phone"></span><br/>

    </p>

    <h3>获取JSON创建的数组</h3>

    <p>

       <span id="jsonarray"></span>

    </p>

    <script type="text/javascript">

    //声明JSON对象

  var JSONobj={

      "name":"China-Anhui",

      "address":"白天鹅国际商务中心",

      "age":"22",

      "phone":"15966667777"

  };

  //声明JSON数组

  var JSONarray={

      "eat":[

          {"morning":"baozi1","lunch":"fish1","night":"noddle1"},

          {"morning":"baozi2","lunch":"fish2","night":"noddle2"}

      ],

      "交通工具":[

          {"car":"宝马","walk":"步行","other":"电动车"}

      ]

  };

  //向页面输出json对象信息

  document.getElementById("name").innerHTML=JSONobj.name;

  document.getElementById("address").innerHTML=JSONobj.address;

  document.getElementById("age").innerHTML=JSONobj.age;

  document.getElementById("phone").innerHTML=JSONobj.phone;

  //向页面输出JSON数组信息

  document.getElementById("jsonarray").innerHTML=JSONarray.eat[1].morning;

  //document.getElementById("jsonarray").innerHTML=JSONarray.交通工具[1].car;

  </script>

  </body>

</html>

JavaScript遍历JSON数组

<!DOCTYPE html>

<html>

  <head>

    <title>JSONarray.html</title>

  </head>

  <body>

    <script type="text/javascript">

       var data=[{name:"cat1",age:"12"},{name:"cat2",age:"13"},{name:"cat3",age:"14"}];

       //alert(data.length);

       //for循环遍历方式

       for(var i=0;i<data.length;i++){

          console.log("key:"+data[i].name+"---value:"+data[i].age);

       }

      

       //for...in方式遍历

       for(var da in data){

          console.log("key:"+data[da].name+";value:"+data[da].age+"");

       }     

    </script>

  </body>

</html>

 

JSON的应用

JSON 文本转为 JavaScript 对象

JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。

JSON 语法是 JavaScript 语法的子集,JavaScript函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

<!DOCTYPE html>

<html>

  <head>

    <title>JSONarray.html</title>

  </head>

  <h3>获取JSON字符串创建的对象</h3>

  <p>

  <span id="firstName"></span><br/>

  <span id="lastName"></span>

  </p>

  <body>

    <script type="text/javascript">

       var txt = '{"employees":[' +

            '{"firstName":"Hello","lastName":"Anhui" },' +

            '{"firstName":"George","lastName":"Bush" },' +

            '{"firstName":"Thomas","lastName":"Carter" }]}';

      var obj = eval("("+txt+")");

      console.log(obj);

      document.getElementById("firstName").innerHTML=obj.employees[0].firstName;

      document.getElementById("lastName").innerHTML=obj.employees[0].lastName;

    </script>

  </body>

</html>

 

JSON解析器

使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。

<!DOCTYPE html>

<html>

  <head>

    <title>JSONarray.html</title>

  </head>

  <h3>获取JSON字符串创建的对象</h3>

  <p>

  <span id="firstName"></span><br/>

  <span id="lastName"></span>

  </p>

  <body>

    <script type="text/javascript">

       var txt = '{"employees":[' +

            '{"firstName":"Hello","lastName":"Anhui" },' +

            '{"firstName":"George","lastName":"Bush" },' +

            '{"firstName":"Thomas","lastName":"Carter" }]}';

      //var obj = eval("("+txt+")");

      var obj = JSON.parse(txt);

      console.log("JSON解析器:"+obj);

      document.getElementById("firstName").innerHTML="++"+obj.employees[0].firstName;

      document.getElementById("lastName").innerHTML="++"+obj.employees[0].lastName;

    </script>

  </body>

</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在RESTful API中,使用JSONJavaScript Object Notation)进行数据交换是非常常见的。这里我会简单介绍如何在客户端请求时发送JSON字符串,以及服务器端如何处理并返回JSON响应。 **客户端(如使用HTTP客户端或浏览器)发送JSON字符串**: 1. **GET请求**: 使用`application/json` Content-Type, 示例: ```csharp string jsonString = "{\"name\":\"John\", \"age\":30}"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.example.com/endpoint"); request.Method = "GET"; request.ContentType = "application/json"; using (StreamWriter writer = new StreamWriter(request.GetRequestStream())) { writer.Write(jsonString); } ``` 2. **POST请求**: 同样设置Content-Type为`application/json`, 但通常包含在请求体中: ```csharp var jsonContent = new StringContent(jsonString, Encoding.UTF8, "application/json"); HttpClient client = new HttpClient(); client.PostAsync("http://api.example.com/endpoint", jsonContent).Wait(); ``` **服务器端(例如ASP.NET Core)接收并处理JSON请求**: 1. 创建一个控制器方法接收JSON参数: ```csharp [HttpPost] public JsonResult PostData([FromBody] dynamic jsonData) { // 检查和解析jsonData var name = jsonData.name; int age = (int)jsonData.age; // 对数据进行处理 // ... return Ok(new { message = "Received data", data = /* 返回的Json对象 */ }); } ``` 注意这里用`dynamic`类型是为了临时处理可能未知结构的JSON,但在实际项目中应尽量明确类型。 2. 如果要返回JSON响应: ```csharp return JsonConvert.SerializeObject(responseObject, Formatting.Indented); // 或者其他格式 ``` 这里`JsonConvert.SerializeObject()`用于将对象转换为JSON字符串。 **相关问题--:** 1. RESTful API的基本概念是什么? 2. 如何在C#中设置HTTP请求头来指定Content-Type? 3. 如何在ASP.NET Core中使用JsonSerializer序列化和反序列化? 4. 除了动态类型,还有哪些方法可以更安全地处理不同结构的JSON
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值