2016-10-19 3 views
-1

У меня есть тело JSON, которое содержит число, строку, булево значение и значения массива.Можно ли проверить число в json с кавычками как недопустимое?

{ 
    "name": "vivek", 
    "age": 12, 
    "employed": true, 
    "cars": ["maruti", "wagonR"] 
} 

Единственный приемлемый случай - {"age":12} для возраста. В любом другом случае он должен запросить повторный ввод возраста. (То есть {"age":"12"}) Каковы возможные способы подтверждения этого?

+1

Я проверил тип значения, используя унарный 'typeof' после разбора JSON. – Hydro

+2

Декодируйте JSON в объект, проверьте *** тип *** значения, выбросьте любые ошибки, которые вы хотите ... ?! – deceze

ответ

2

Вы можете разобрать JSON и проверить тип его свойства «возраст», или если он существует. Есть и другие способы, но, проверяя тип, он безопаснее, поскольку возраст может быть любым значением, и получение его свойства конструктора может привести к исключению.

var json = JSON.parse('JSON CONTENTS'); 

// Fast way to check whether getters operations can 
// be done at json. 
if (json) { 
    var age = json.age; 

    if (json.hasOwnProperty('age')) { 
     var type = typeof age; 
     if (type !== 'number') 
      throw new Error('age cannot be a ' + type); 
    } else { 
     throw new Error('age is required'); 
    } 
} 
+0

Спасибо, это сработало. Я просто должен был подкрепить JSON до его разбора. – user2745101

+1

@ user2745101 Эй, но вам не нужно строгать/разбирать его - если он уже доступен для вас – Hydro

+0

JSON недоступен для меня напрямую. он поступает в запрос в APIGEE – user2745101

Смежные вопросы