可以在sqlite android

时间:2017-01-04 02:32:31

标签: android sql json database sqlite

你好我有这样的json,现在我想把这个json保存到sqlite android,但是 我混淆了如何为这个json创建一个表,json结果是字符串/文本类型但是我们知道在create table sqlite中我们需要将类型为integer的数据作为主键。

我想使用UserId作为主键,但这是类型text / string。

我的问题是,我可以使用字符串/文本作为主键创建表吗? 如果你有另一种方法将这个json保存到sqlite,请告诉我如何做到这一点。提前谢谢......

[
      {
        "UserId": "3c652fc4-5dc4-4fa5-8c07-d27b0b657823",
        "Nationality": "ID",
        "Image": null,
        "IsAlreadyOnTextoaser": true,
        "IsAlreadyOnRequest": false,
        "LastActive": null,
        "LastActiveResume": "0 Days Ago",
        "FirstName": "dwi",
        "LastName": "wahyudi"
      },
      {
        "UserId": "cbb1f8bd-8016-4bc6-abd1-701fb353293d",
        "Nationality": "ID",
        "Image": null,
        "IsAlreadyOnTextoaser": true,
        "IsAlreadyOnRequest": false,
        "LastActive": null,
        "LastActiveResume": "0 Days Ago",
        "FirstName": "Wildan",
        "LastName": "Rachman"
      }
    ]

1 个答案:

答案 0 :(得分:2)

Android框架的许多部分都希望您的数据具有一个名为_id的唯一整数列。

(获得这样一个列的最简单方法是使其成为自动增量主键,但是如果您的数据已经有这样的列,或者如果可以从其他值轻松计算出唯一值,那么您就不会这样做。 ;需要一个明确的。)

虽然PRIMARY KEY约束记录了哪一列标识了行,但实际的技术效果与NOT NULL和UNIQUE相同。因此,您可以在表格中拥有多个候选键:

CREATE TABLE MyTable (
    _id       INTEGER PRIMARY KEY,      -- autoincrementing, for Android
    UserId    TEXT    NOT NULL UNIQUE,  -- actual PK 
    FirstName TEXT,
    [...]
);