With that said, you appear to be using the Jetty implementation/apis.
So, switch to `org.eclipse.jetty.websocket.server.JettyWebSocketServlet` instead.
JSON json = new JSON();
// configure json here
Map<String, String> myMap = (Map<String, String>) json.fromJSON(str);
thank you for the helpful tips on JSON parsing.
Could you please help me with creating JSON?
In Jetty 9.4.x I had this method:
// this string is POSTed to Google FCM server
public String toFcmBody(String boardUrl, String gameNumber) {
Map<String, Object> root = new HashMap<>();
Map<String, Object> notif = new HashMap<>();
Map<String, Object> data = new HashMap<>();
root.put(KEY_TO, mFcm);
root.put(KEY_NOTIFICATION, notif);
root.put(KEY_DATA, data);
notif.put(KEY_TITLE, gameNumber + " " + mGid);
notif.put(KEY_BODY, mBody);
notif.put(KEY_IMAGE, boardUrl + mGid);
data.put(KEY_GID, mGid);
return JSON.toString(root);
}
So now I am trying the following, but what to use as the first param to appendMap()?
// this string is POSTed to Google FCM server
public String toFcmBody(String boardUrl, String gameNumber) {
Map<String, Object> root = new HashMap<>();
Map<String, Object> notif = new HashMap<>();
Map<String, Object> data = new HashMap<>();
root.put(KEY_TO, mFcm);
root.put(KEY_NOTIFICATION, notif);
root.put(KEY_DATA, data);
notif.put(KEY_TITLE, gameNumber + " " + mGid);
notif.put(KEY_BODY, mBody);
notif.put(KEY_IMAGE, boardUrl + mGid);
data.put(KEY_GID, mGid);
// new code
JSON json = new JSON();
json.appendMap(???, root);
return json.toString();
}
And also Jetty 10 is not happy with the deprecated header() method here:
MultiMap<String> postParams = new MultiMap<>();
postParams.put("code", code);
postParams.put("client_id", mBundle.getString(STR_GOOGLE_ID));
postParams.put("client_secret", mBundle.getString(STR_GOOGLE_SECRET));
postParams.put("redirect_uri", String.format(GOOGLE_REDIRECT_URI, mLanguage));
postParams.put("grant_type", "authorization_code");
String tokenStr = mHttpClient.POST(GOOGLE_TOKEN_URL)
.header(HttpHeader.ACCEPT, APPLICATION_JSON) // what to use here please?
.header(HttpHeader.CONTENT_TYPE, APPLICATION_URLENCODED)
.content(new StringContentProvider(UrlEncoded.encode(postParams, StandardCharsets.UTF_8, false)))
.send().getContentAsString();
Map<String, String> tokenMap = (Map<String, String>) mJson.fromJSON(tokenStr);
Best regards
Alex