2016-07-25 2 views
1

У меня есть дата истечения срока действия в JSON formate, и я хочу получить эту дату истечения срока действия в строковой переменной, чтобы что мне делать? класс ExpiryDate общественного {Данные JSON в одинарной цитате

public String getExpiryDate() throws ParseException, IOException{ 

     String expiryDateString = "{'expire_on':'Aug 05, 2016'}"; 

     JSONParser jsonParser = new JSONParser(); 

     Object obj = jsonParser.parse(expiryDateString); 

     JSONObject jsonObject = (JSONObject) obj; 

     System.out.println(jsonObject); 

     return ""; 
    } 

} 

Я передаю это JSON данные, но на объекте создать линию я получил это исключение

Unexpected character (') at position 1. 
    at org.json.simple.parser.Yylex.yylex(Unknown Source) 
    at org.json.simple.parser.JSONParser.nextToken(Unknown Source) 
    at org.json.simple.parser.JSONParser.parse(Unknown Source) 
    at org.json.simple.parser.JSONParser.parse(Unknown Source) 
    at org.json.simple.parser.JSONParser.parse(Unknown Source) 
    at onbording.ExpiryDate.getExpiryDate(ExpiryDate.java:25) 
    at onbording.Sendmail.handleRequest(Sendmail.java:57) 
    at example.sendmailTest.testsendemail(sendmailTest.java:44) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
+0

Я вижу два варианта: избежать двойных кавычек (одиночные не разрешены в JSON) или использовать JSONObject, чтобы сделать поколение более простым. –

+0

yupp теперь я получил его @Pablo, удалив одинарные кавычки – Vipul

ответ

1

You can't use single qoutes.

Возможно, вы используете Java. Я предлагаю вам использовать JSONObject.

JSONObject jsonObject = new JSONObject(); 
jsonObject.put("expire_on", "Aug 05, 2016"); 
String expiryDateString = jsonObject.toString(); 

Как правило, лучше использовать JSON для обработки, чем создание строки JSON вручную.

Другой вариант - использовать экранированные двойные qoutes.

String expiryDateString = "{\"expire_on\":\"Aug 05, 2016\"}"; 
+0

Спасибо @yariash, но у меня есть данные JSON как объяснение выше, поступающее из базы данных, и этой строкой я хочу единственную дату – Vipul

+0

Если эта строка хранится в вашей БД, тогда у вас есть недействительный JSON в вашей БД –

+0

Если я использую двойную кавычку вместо одиночной кавычки, то я получу синтаксическую ошибку на токене – Vipul

0

Я не знаю, с API, но от взглядов этого вам нужно избежать ваших "героев ...

от быстрого поиска Google я нашел это: http://www.programcreek.com/java-api-examples/org.json.simple.parser.JSONParser

код в ссылке в основном говорит вам, к и se \ "вместо" в вашей строке, и ваш JSONParser должен это понять. Надеюсь это поможет.

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