2013-02-25 70 views
-1

编辑:这样的事情,但是这是不工作下去,但有问题我觉得如何使用JSON Stringify当字段是自己的对象类型?

var stringifyObj = JSON.stringify({ 
     "addressAddressId":$('#address').val(){ 
      "cityId:"$('#city').val(){ 
       "postalCode":$('#postalCode').val() 
      } 
     } 
});  

* 当我产生在NetBeans中,JSON结构测试客户端(GET/JSON)就是这样,但我怎样才能用Javascipt和Strinfy函数编码? *

"addressAddressId": { 
     "addressId": 1, 
     "address": "Järnvägen 2", 
     "address2": null, 
     "district": null, 
     "postalCode": "20360", 
     "phone": null, 
     "coordinates": null, 
     "latitude": null, 
     "longitude": null, 
     "directions": null, 
     "description": null, 
     "addrZipCityCountry": null, 
     "lastUpdated": 1361754860000, 
     "cityId": { 
      "cityId": 1, 
      "city": "", 
      "lastUpdate": 1361754850000, 
      "countryCountryId": { 
       "countryId": 1, 
       "country": "Sweden", 
       "lastUpdate": 1361754837000 
      } 
     } 
    }, 

问题

  1. 在自己的 对象类型如City对象的情况下,透过JSON.stringify地址对象的内部时,什么是正确的语法?
  2. 如果不使用 @JsonIgnoreProperties({“”}),我应该将每个字段添加到json吗?我只需要地址,城市和邮政编码 。地址是在服务器端 场字符串地址地址的类型,市市的类型包括字符串场城市名称等
+0

如何'$( '#地址')。VAL()'一个 “*自己的对象类型*”?这不是一个简单的字符串(或选择数组)吗? – Bergi 2013-02-25 02:07:42

+1

为什么有两个'addressAddressId'属性? – andri 2013-02-25 02:12:25

+0

@andri这只是一个名字。当你有关系和oneToMany,manytToOne等连接时,Netbeans会产生这种愚蠢的名字。 addressAddressId是对象类型Address的引用,addressId是Address-table中的字段和主键。 – Sami 2013-02-25 09:45:03

回答

2

我不知道什么是你想上面做你的Javascript功能,但如果你的目标是产生JSON使用JavaScript之类的结构,也许你可以试试这个:

var stringifyObj = JSON.stringify({ 
    "addressAddressId": { 
    "addressId": 1, 
    "address": "Järnvägen 2", 
    "address2": null, 
    "district": null, 
    "postalCode": "20360", 
    "phone": null, 
    "coordinates": null, 
    "latitude": null, 
    "longitude": null, 
    "directions": null, 
    "description": null, 
    "addrZipCityCountry": null, 
    "lastUpdated": 1361754860000, 
    "cityId": { 
     "cityId": 1, 
     "city": "", 
     "lastUpdate": 1361754850000, 
     "countryCountryId": { 
      "countryId": 1, 
      "country": "Sweden", 
      "lastUpdate": 1361754837000 
     } 
    } 
    }   
}); 

基本上,你需要做的就是包装JSON字符串作为JSON.stringify的参数。

或者,如果你需要逐步建立,而不是提供一次像上面的所有属性的对象,也许你可以试试这个:所有的对象属性正确填写

var obj = {}; 
//add properties as needed 
//simple properties 
obj.addressId = 1; 
obj.address = "Järnvägen 2"; 
obj.address2 = null; 
//nested properties 
obj.cityId = {}; 
obj.cityId.cityId = 1; 
obj.cityId.countryCountryId = {}; 
obj.cityId.countryCountryId.countryId = 1; 

后,将它传递到JSON.stringify这样的:

var stringifyObj = JSON.stringify(obj); 

或者产生JSON在你的例子说明,您可以进一步包裹obj这样的:

var stringifyObj = JSON.stringify({ addressAddressId = obj }); 

我希望你的想法:)

+0

谢谢!我认为你的第二选择是最好的。我只是试图从表单(输入字段如地址等)中获取值,并将它们发送到REST服务并将它们保存到JPA数据库中。问题是我尝试创建JSON时的语法。我让你知道我是如何设法解决这个问题的,现在太忙了:) – Sami 2013-02-26 08:28:56

+0

现在我得到了它的工作。 var user = {}; user.addressAddressId = {}; user.addressAddressId.address = $('#address')。val(); user.addressAddressId.postalCode = $('#postalCode')。val(); ...感谢您的帮助!顺便说一句,我如何管理我的Web服务中的响应?我想成功后转发用户到不同的页面? – Sami 2013-02-26 11:21:30

+0

很高兴听到你有它的工作。对于你的问题,也许你可以张贴在另一个问题在这里:) – andri 2013-02-27 07:48:49

0

而你在这里失去了一个逗号,虽然我不能说是你的问题。

"postalCode": { 
    "postalCode": $('#postalCode').val() 
} <--- need comma here 

"addressAddressId": { 
+0

对不起!我的回答很糟糕。第二个addressAddressId仅仅是来自Netbeans的testCient的GET/JSON的一个例子。 – Sami 2013-02-25 10:37:34

相关问题