2013-02-25 4 views
-1

EDIT: Что-то вроде этого, но это не работает либо, но есть проблема, которую я думаюКак использовать 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. Что такое правильный синтаксис при использовании JSON.stringify в случае собственного типа объекта, как город-объект внутри Адрес-объекта?
  2. Должен ли я добавить каждое поле в json, если не использовать @JsonIgnoreProperties ({""})? Мне просто нужен адрес, город и почтовый код . адрес типа адреса с помощью строкового поля адреса в сервере стороны, Город типа города включает в себя Струнное-поле для названия города и т.д.
+0

Как это '$ ('# адрес'). VAL()' в "* собственный тип объекта *"? Разве это не простая строка (или массив для выбора)? – Bergi

+1

Почему существуют два свойства 'addressAddressId'? – andri

+0

@andri Это просто имя. Netbeans генерирует такие глупые имена, когда у вас есть отношения и oneToMany, manytToOne и т. Д. Соединения. addressAddressId - ссылка на тип объекта Address, адресId - это поле и первичный ключ в адресной таблице. – Sami

ответ

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

+0

Теперь у меня это работает. var user = {}; user.addressAddressId = {}; user.addressAddressId.address = $ ('# address'). Val(); user.addressAddressId.postalCode = $ ('# postalCode'). Val(); ... СПАСИБО МНОГО! Кстати, как я управляю ответом в своем веб-сервисе? Я хотел бы переслать пользователя на другую страницу после успеха и т. Д.? – Sami

+0

Рад слышать, что у вас это работает. На ваш вопрос, может быть, вы можете опубликовать это как еще один вопрос здесь в SO :) – andri

0

И вам не хватает запятую здесь, хотя я не могу сказать, что это ваш вопрос.

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

"addressAddressId": { 
+0

Извините за это! Мой ответ был плохо структурирован. Второй адресAddressId - это просто пример из GET/JSON с testCient в Netbeans. – Sami