C# Marketo-批量API序列化的响应

C# Marketo-批量API序列化的响应,c#,serialization,json.net,marketo,C#,Serialization,Json.net,Marketo,我正在尝试在Marketo中使用批量导入API端点来获取与Marketo中的批量作业I关联的和 这些作业的输出表示为一个observeyFinputStreamContent,但是这些端点的响应返回一个csv字符串(带有标题列),它不是JSON对象。为了解决这个问题,我们使用生成的招摇器文件和提供的招摇器定义文件。这些生成的c#客户端文件具有observeyFinputStreamContent对象,但它是一个空对象。我不确定这是有意的,还是Marketo方面的错误。生成的文件将尝试使用Newt

我正在尝试在Marketo中使用批量导入API端点来获取与Marketo中的批量作业I关联的和

这些作业的输出表示为一个
observeyFinputStreamContent
,但是这些端点的响应返回一个csv字符串(带有标题列),它不是JSON对象。为了解决这个问题,我们使用生成的招摇器文件和提供的招摇器定义文件。这些生成的c#客户端文件具有
observeyFinputStreamContent
对象,但它是一个空对象。我不确定这是有意的,还是Marketo方面的错误。生成的文件将尝试使用
Newtonsoft.Json.JsonConvert.DeserializeObject(responseText,JsonSerializerSettings)
将API响应反序列化到
ObservableFinPutStreamContent

生成的反序列化API响应的代码:

var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
try
{
    var typedBody = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(responseText, JsonSerializerSettings);
    return new ObjectResponseResult<T>(typedBody, responseText);
}
catch (Newtonsoft.Json.JsonException exception)
{
    var message = "Could not deserialize the response body string as " + typeof(T).FullName + ".";
    throw new ApiException(message, (int)response.StatusCode, responseText, headers, exception);
}
由于以下原因,此调用将返回此错误:

Newtonsoft.Json.JsonReaderException:解析值a时遇到意外字符。路径“”,第0行,位置0

第二个问题是,
observateFinputStreamContent
被定义为在生成的文件中开始的空对象。因此,如果API响应是有效的JSON,我认为它不知道如何转换为空的
observeyFinputStreamContent
对象。关于生成的代码的好消息是,它为我提供了一个扩展
observateFinputStreamContent
的选项,因为它被定义为
partial

[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.11.0 (Newtonsoft.Json v11.0.0.0)")]
public partial class ObservableOfInputStreamContent
{

}

也就是说,是否有任何可能的方法可以使用
JsonSerializerSettings
绕过这个问题?我是否可以扩展
observateFinputStreamContent
类以保存string属性,然后创建自己的类以将API返回的字符串转换为新的
observateFinputStreamContent

在读取所有数据之前,您无法解析json。json有打开/关闭标记,如果没有匹配的打开和关闭标记,json序列化程序将失败。@jdweng它失败,因为API的响应根本不是json。没有打开和关闭标记
{}
。响应取决于您的URL。你的网址是什么?请参阅:@jdweng
BaseUrl
不会以任何方式改变响应,只会拉入正确的Marketo实例数据。:)URL不包含任何参数(问号后)?你必须在帖子中添加任何http头吗?
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.11.0 (Newtonsoft.Json v11.0.0.0)")]
public partial class ObservableOfInputStreamContent
{

}