小编Dir*_*rus的帖子

改造2:从响应机构获取JSON

我想使用改装2从我的api获取字符串json,使用改装1获取此json时我没有问题,但使用retrofit 2 为我返回null.

这就是我的json的样子

{"id":1,"Username":"admin","Level":"Administrator"}
Run Code Online (Sandbox Code Playgroud)

这是我的API

@FormUrlEncoded
@POST("/api/level")
Call<ResponseBody> checkLevel(@Field("id") int id);
Run Code Online (Sandbox Code Playgroud)

这就是我的代码的样子

Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Config.BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        Api api = retrofit.create(Api.class);
        Call<ResponseBody> call = api.checkLevel(1);
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                JsonObject post = new JsonObject().get(response.body().toString()).getAsJsonObject();
                    if (post.get("Level").getAsString().contains("Administrator")) {

                    }
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
            }
        });
Run Code Online (Sandbox Code Playgroud)

我是新手改造2并使用上面的代码,它总是让我的应用程序崩溃因为response.body().toString()返回null.

请指导我如何获取json字符串,以便将其转换为JsonObject.

android json retrofit retrofit2

52
推荐指数
6
解决办法
13万
查看次数

使用 Sequelize 更改列或添加新列时如何更新迁移文件

我是 Sequelize 的新手,现在我正在使用 NodeJS 和 Sequelize 创建一个 RESTful api。我正在尝试弄清楚如何更改我的数据库架构,例如使用 Sequelize 更改我的列名

我创建了一个这样的模型

sequelize model:create --name MyUser --attributes first_name:string,last_name:string,bio:text
Run Code Online (Sandbox Code Playgroud)

它在模型中创建了一个文件

'use strict';
module.exports = function(sequelize, DataTypes) {
  var Page = sequelize.define('Page', {
    name: DataTypes.STRING,
    text: DataTypes.TEXT,
    url: DataTypes.STRING
  }, {
    classMethods: {
      associate: function(models) {
        // associations can be defined here
      }
    }
  });
  return Page;
};
Run Code Online (Sandbox Code Playgroud)

和迁移文件夹中的一个文件

'use strict';
module.exports = {
  up: function(queryInterface, Sequelize) {
    return queryInterface.createTable('Pages', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      }, …
Run Code Online (Sandbox Code Playgroud)

mysql node.js sequelize.js

6
推荐指数
1
解决办法
6186
查看次数

Swift从对象数组中删除重复项

我尝试将从服务器获取的json数据附加到对象数组,并且如果有任何重复,则要删除任何重复数据

这是我的自定义类

class datastruct {

    var id: Int?
    var name: String?

    init(add: NSDictionary) {
        id = add["id"] as? Int
        name = add["name"] as? String
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我用来将json附加到我的数组的代码

    var data:Array< datastruct > = Array < datastruct >()
    Alamofire.request(url)
                .responseJSON{ response in
                    switch response.result {
                    case .success(let JSON):
                        if let list = JSON as? NSArray {
                            for i in 0 ..< list.count {
                                if let res = list[i] as? NSDictionary {
                                    self.data.append(datastruct(add: res))
                                }
                            }
                            self.refresh()
                        }

                    case .failure(let error):

                    }

                } …
Run Code Online (Sandbox Code Playgroud)

json nsdictionary nsarray ios swift3

1
推荐指数
1
解决办法
2275
查看次数