mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
CE-781 Update to work without a table specified (just getting field names from the json keys)
This commit is contained in:
@ -103,6 +103,15 @@ public class JsonToQRecordAdapter
|
||||
{
|
||||
QRecord record = new QRecord();
|
||||
|
||||
if(table == null)
|
||||
{
|
||||
jsonObject.keys().forEachRemaining(key ->
|
||||
{
|
||||
record.setValue(key, jsonObject.optString(key));
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
for(QFieldMetaData field : table.getFields().values())
|
||||
{
|
||||
String fieldSource = mapping == null ? field.getName() : String.valueOf(mapping.getFieldSource(field.getName()));
|
||||
@ -112,6 +121,7 @@ public class JsonToQRecordAdapter
|
||||
record.setValue(field.getName(), (Serializable) jsonObject.get(fieldSource));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (record);
|
||||
}
|
||||
|
@ -164,6 +164,29 @@ class JsonToQRecordAdapterTest extends BaseTest
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
@Test
|
||||
public void test_buildRecordsFromJsonWithoutTable_inputList()
|
||||
{
|
||||
JsonToQRecordAdapter jsonToQRecordAdapter = new JsonToQRecordAdapter();
|
||||
List<QRecord> qRecords = jsonToQRecordAdapter.buildRecordsFromJson("""
|
||||
[
|
||||
{ "firstName":"Tyler", "last":"Samples" },
|
||||
{ "firstName":"Tim", "lastName":"Chamberlain" }
|
||||
]
|
||||
""", null, null);
|
||||
assertNotNull(qRecords);
|
||||
assertEquals(2, qRecords.size());
|
||||
assertEquals("Tyler", qRecords.get(0).getValue("firstName"));
|
||||
assertEquals("Samples", qRecords.get(0).getValue("last"));
|
||||
assertEquals("Tim", qRecords.get(1).getValue("firstName"));
|
||||
assertEquals("Chamberlain", qRecords.get(1).getValue("lastName"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
*******************************************************************************/
|
||||
|
Reference in New Issue
Block a user