JSON对象和Javascript对象

我正在创建一个Web应用程序的前端.我收到
JSON中的所有响应,解析它并将其作为html.我看了几个javascript MVC框架(即backbone.js,ember.js等),发现它们对我的简单应用程序来说太过分了.但我发现真正令人着迷的是他们都有模特.我想我可以创建javascript对象,它们将类似于模型,因为我没有这样复杂的需求,我的自定义javascript对象应该很容易.

function displayCar() {
  var result = "A Beautiful " + this.year + " " + this.make
    + " " + this.model;
  pretty_print(result);
}

function Car(make, model, year, owner) {
  this.make = make;
  this.model = model;
  this.year = year;
  this.owner = owner;
  this.displayCar = displayCar;
}

我从服务器接收汽车作为JSON响应.那么什么是理想的方式:在循环JSON数组时创建对象或者我应该只使用解析并直接从那里显示html?

现在我的问题是我应该将JSON解析为javascript对象吗?我也不确定使用这种物体是否会有所帮助?我还想知道是否有一种直接从JSON创建自定义预定义对象的方法,因为我觉得它可能比我想要的汽车对象更有用

最佳答案 大多数现代javascript框架(jquery,angular,knockout等)都会将字符串表示解析为对象,这不是你需要担心的一个步骤.

您不需要预先定义任何内容,javascript是一种松散类型的语言 – 不需要类定义.本质上,JSON对象是属性名称到值的大型字典,您的Web框架负责将服务器端对象序列化为JSON兼容表示.

关于何时需要显示返回数据,我认为这取决于您正在构建的应用程序.如果您需要无限期地访问汽车,那么迭代它们并根据需要添加方法可能是有意义的,但是,如果您只是想显示数据,请在收到时执行.

所有这些就是说,只需从服务器返回对象,直接访问对象和属性.

这是控制器类中的一个响应URL的方法(伪代码)

public class Car { 
 string make;
 string model;
 string year;
 string owner;
}   

[Get("http://server/cars")]
public Car[] getCars()
{
  // the repository returns an array of Car objects, which in turn are returned to the client
  return myCarRepository.List(0, 25); // always page lists
}

然后在客户端上

jQuery
 .get("/server/cars")
 .success(function(carArray) {
    // carArray is an array of car objects that has been deserialized by jquery
    // you can access the properties using dot syntax
   console.log("server returned " + carArray.length + " cars");
   for (var i = 0; i < carArray.length; i++) {
     console.log("car[" + i + "].make = " + carArray[i].make);
     carArray[i].print = displayCar; // if you want to hold on to the array, and display info later, each object in the array has a print() method
   }
  });
点赞