我正在尝试使用C#API在BigQuery中插入一行(带有嵌套记录)。我可以使用JavaScript API插入一行(带嵌套记录)。但是使用C#API我收到的错误是:“重复字段必须作为JSON数组导入”。他是一个简单的行,我可以使用JavaScript API
插入var json = {'rows':[{'json':
{"inputs" : [{
"Age":"10"
}]}}]};
这在JS中运行良好,但我不清楚如何在C#中执行此操作。
这是我的尝试:
var r = new TableDataInsertAllRequest.RowsData();
r.Json = new Dictionary<string, object>();
var dict = new Dictionary<string, object>();
dict.Add("Age", "10");
r.Json.Add("inputs", dict);
我也尝试使用JSON API
string json = JsonConvert.SerializeObject(input, jsonSettings);
var dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(json, jsonSettings);
r.Json.Add("jsonInputs", dict);
的API文档
它有点模糊或不清楚如何做嵌套记录。我尝试直接写JSON但得到相同的错误。
非常感谢任何帮助。
谢谢,
答案 0 :(得分:2)
从有效的json示例中有两个数组。我在你提供的两个失败例子中都没有看到任何数组。
我怀疑添加数组会解决您的问题。考虑将已知工作的json字符串解析为json对象,并将其用作快速测试。
答案 1 :(得分:0)
以下代码段成功适用于bigquery:
JArray inputs = new JArray();
JObject inputOne = new JObject(new JProperty("Age", "12"));
inputOne.Add(new JProperty("BirthDate", "1234"));
r.Json.Add("inputs", inputs);