-2

以下のメソッドは、リクエストを適切に解析するかどうかのヒットまたはミスです...

リクエストは次のようになります。

POST /addEvent/ HTTP/1.1
Host: localhost:1234
Content-Type: multipart/form-data; boundary=Boundary+0xAbCdEfGbOuNdArY
Accept-Encoding: gzip, deflate
Content-Length: 201
Accept-Language: en;q=1, fr;q=0.9, de;q=0.8, ja;q=0.7, nl;q=0.6, it;q=0.5
Accept: application/json
Connection: keep-alive
User-Agent: XXXXXXXXXXXXXXXXXX

--Boundary+0xAbCdEfGbOuNdArY
Content-Disposition: form-data; name="userInfo"

{   "user_id" : 1,   "value" : "Water",   "typeCode" : "Searched" } 

これが現在の抽出方法です...

//Key where the request begins
String keyString = "\"userInfo\"";

//Get the index of the key
int end = bufferedJson.lastIndexOf("\"userInfo\"");

//Create substring at beginning of the json
String json = bufferedJson.substring(end+keyString.length(), bufferedJson.length());

//Convert json to feed item
Gson gson = new Gson();
Event eventItem = gson.fromJson(json, Event.class);

私はかなり頻繁にこのエラーを受け取ります:

Expected BEGIN_OBJECT but was STRING at line 1 column 1

これを効率的に解析するにはどうすればよいでしょうか。

4

3 に答える 3

0

使用できます

gson().fromJson(request.getReader(), Event.class);

また

String json = request.getReader().readLine();
gson().fromJson(json, Event.class);
于 2014-01-15T17:44:31.823 に答える