Function to return a JSON String of Row Contents

So, I want to record changes made in some data tables to a data table in another sheet. This will give an easy auditing feature to any table you require audited. My requested function would take 2 inputs, a tablename and a rowkey. The function would return a JSON formatted string of Key:Value pairs that reflect the column names and values in the supplied arguments.

The auditing table would only require 4 fields. When (DateTime), Who (Useremail()), Table (Name of the table being audited), Changes (The function’s return string).

It could be used as part of a Behaviour (Add a new record to another table using values from this Row) and would greatly simplify how I do it at the moment where I have to hand construct a formula such as

CONCATENATE("{",“ServiceID:”,[ServiceID],",
InvoiceGroup:",[InvoiceGroup],",
ItemType:",[ItemType],",
ItemName:",[ItemName],",
UnitItemCost:",[UnitItemCost],",
Unit:",[Unit],",
LastUpdate:",[LastUpdate],",
ItemLastChange:",[ItemLastChange],",
ChangedBy:",[ChangedBy],",
Related ServiceSubItems:",[Related ServiceSubItems],",
Related ProjectItems:",[Related ProjectItems],"}")

I would have to generate something like that as a virtual field on each table I want to audit wheras a nice function to return something similar such as ROWVALUES(“TABLE”,“KEY”) would be awesome!

Thanks for your consideration!