我试图在服务器上发布下面的JSON数组。
{
"order": [{
"orderid": "39",
"dishid": "54",
"quantity": "4",
"userid":"2"
},{
"orderid": "39",
"dishid": "54",
"quantity": "4",
"userid":"2"
}]
}
我在下面使用这个:
private void updateOreder() {
M.showLoadingDialog(GetDishies.this);
UpdateAPI mCommentsAPI = APIService.createService(UpdateAPI.class);
mCommentsAPI.updateorder(jsonObject, new Callback<String>() {
@Override
public void success(String s, Response response) {
M.hideLoadingDialog();
Log.e("ssss",s.toString());
Log.e("ssss", response.getReason());
}
@Override
public void failure(RetrofitError error) {
M.hideLoadingDialog();
Log.e("error",error.toString());
}
});
}
我收到以下错误:
retrofit.RetrofitError: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 2 column 6 path $
更新Api代码:
@POST("updateorder.php")
void updateorder(@Body JSONObject object,Callback<String>());
有谁能告诉我我的错误吗?
先谢谢你
4条答案
按热度按时间o8x7eapl1#
创建OrderRequest类
创建订单类
终点
在调用服务的mainActivity中使用此类型的实现
在createOrder方法中,我们不需要将对象转换为JSON。因为当我们构建retrofit时,我们添加了转换器工厂作为GsonConverterFactory。它会自动将该对象转换为JSON
tvokkenx2#
尝试将您的代码修改为Retrofit 2
您的服务:
呼叫改装
使用GSON传递JSON:
最后道:
我希望能对你有所帮助。
t3psigkw3#
将JSon对象转换为类jsonschema2pojo
然后在类中定义与JSon结构匹配的变量。([]定义的内部块是一个对象数组)。并且必须定义getter和setter(为了保存空间,我在这里没有包括它们)
wlp8pajw4#
使用改型版本2
1.创建POJO类,它对应于您将发送到服务器的JSON结构:
1.创建一个servicegenerator类来初始化Retrofic对象示例:
1.创建应包含“updateorder”方法的api服务接口:
4.在您的Activity或片段中,您希望在其中发出请求,填充您的Json数据并初始化ApiService: