【发布时间】:2021-08-08 15:30:12
【问题描述】:
我正在从 java 代码中接收该字符串:
{devices:[3962], contacts:[{_userId='1', _contactId='(+1)1111111', _contactName='Name Surname'}]} 我想将其转换为普通对象,但它不是有效的 JSON 格式。你有什么想法吗?
或者也许有人可以帮助我编写 JAVA 代码。 我想所有的魔法都在这里:
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public String extractDbDump() {
return "{devices:" + getDevices() + ", contacts:" + getContacts() + "}";
}
private String getContacts() {
List<ContactItem> contactList = new ArrayList<>();
String selectQuery = "SELECT * FROM " + TABLE_CONTACT;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
ContactItem contact = new ContactItem();
contact.userId = cursor.getString(0);
contact.contactName = cursor.getString(1);
contact.contactId = cursor.getString(2);
contactList.add(contact);
} while (cursor.moveToNext());
}
db.close();
return "" + contactList.toString();
}
private String getDevices() {
List<String> deviceList = new ArrayList<>();
String selectQuery = "SELECT * FROM " + TABLE_DEVICE;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor != null && cursor.getCount() > 0) {
if (cursor.moveToFirst()) {
do {
deviceList.add(cursor.getString(0));
} while (cursor.moveToNext());
}
}
db.close();
return deviceList.toString();
}
public class ContactItem {
public String userId;
public String contactId;
public String contactName;
@Override
public String toString() {
return "{" +
"_userId='" + userId + '\'' +
", _contactId='" + contactId + '\'' +
", _contactName='" + contactName + '\'' +
'}';
}
}
【问题讨论】:
-
修复无效 JSON 的来源
-
我不懂JAVA,所以不会
-
但是您可以访问 Java 代码?
-
这不是 JSON,所以如果没有一些繁重的字符串操作,就没有简单的方法来解析它。
-
@alex 请不要在 cmets 中分享问题代码?一行字真的很难全部理解。 (我知道你没有,但这是供将来参考)
标签: javascript java json string format