我不了解JSON,当我应该使用JSON时,要小心解释一下吗?

时间:2014-03-15 13:54:21

标签: asp.net json web-services

我刚刚开始学习ASP.NET,而且我遇到了Web服务。我不完全明白JSON的用途是什么,何时使用它,为什么它比XML更好。请解释一下吗?

5 个答案:

答案 0 :(得分:0)

JSON是一种基于文本的对象序列化格式,比XML更轻量级。它直接与JavaScript的对象模型集成。这就是它的大部分优势。

答案 1 :(得分:0)

您主要使用JSON在Web客户端和Web服务器之间发送数据,通常使用WebServices。它将数组和对象序列化为人类可读的文本,并且可以很容易地被计算机解析。这是ECMA 404标准。

以下是具有一些属性的JSON序列化类的示例,其中一个属性是数组:

{firstname: 'Joe',  lastname: 'Smith', phonenumbers: ['555-555-5555','444-444-4444']}

答案 2 :(得分:0)

由于JSON的简单格式,JSON在许多情况下比XML更轻量级。如果你还没有觉得自己熟悉JavaScript中的数组,函数和对象,我会考虑一下。之后,JSON会感觉非常熟悉并且易于使用

答案 3 :(得分:0)

JSON是用于存储和交换文本信息的语法 - 与XML非常相似。 它对XML的主要支持是:

  • 比XML
  • 更小更短
  • 更快更容易解析,
  • 更快阅读和写作
从W3schools开始,JSON对象可能如下所示:

var employees = [
{ "firstName":"John" , "lastName":"Doe" }, 
{ "firstName":"Anna" , "lastName":"Smith" }, 
{ "firstName":"Peter" , "lastName": "Jones" }
];

XML文件可能如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<employees >
 <employee>
   <firstName>John</firstName>
   <lastName>Doe</lastName>
 </employee>
 <employee>
   <firstName>Anna</firstName>
   <lastName>Smith</lastName>
 </employee>
 <employee>
   <firstName>Peter</firstName>
   <lastName>Jones</lastName>
 </employee>
</employees >

从上面的示例中,您应该看到读取和编写JSON对象而不是XML要快得多,因为它更小更短。

当你想在服务器和网络浏览器之间进行一些数据交换并动态加载一些数据时 - 例如从数据库中,JSON对象非常方便:

function yourJavascriptfunction(sender){

   $.post("returndata.php", {
    UserID:sender.name
     })
    .success(function(data){    
     var returnedObject = JSON.parse(data);
     for(var i = 0; i < returnedObject.Data.length; i++){
        console.log(returnedObject.Data[i]["someRowInYourTable"]);
     }
    })
    .fail(function(jqXHR, textStatus, errorThrown){
      alert("Unable to retrieve data from the server, error code:" + errorThrown);
    });
 }

并且您的名为returndata.php的php文件可以从您创建的数据库中返回这些数据

<?php
    $connection = mysqli_connect("localhost","root","password","yourDatabase") or die(mysql_error());
    $userID = $_POST['UserID'];

    $query1 = mysqli_query($connection, "SELECT * FROM table1 WHERE userid = $userID");

    $returnObject = new stdClass();
    $returnObject->Error = "Some error";
    $ObjectArray = array();
    $position = 0;

    while ($newrow = mysqli_fetch_array($query1)) {
        $ObjectArray[$position] = $newrow;
        $position++;
    }

    $returnObject->Data = $ObjectArray;
    echo json_encode($returnObject);

?>

答案 4 :(得分:0)

确实存在一些差异......

XML的优点:

  • 支持评论
  • 支持名称空间
  • 支持架构

JSON的优点:

  • 较小
  • 原生支持null
  • 原生对象支持
  • 原生阵列支持
  • 提供标量数据类型(字符串是字符串,数字是数字等)。虽然缺乏日期。
  • 更简单(但意见问题)

可读性...... 有人认为XML难以阅读......我不同意。对于分层数据,XML可以发挥作用。如果不使用它,JSON看起来就像乱码,特别是如果它没有格式化和缩进。我认为这是一个平局。