我將批量序列化的記錄(在JArray中)發送到事件中心。當我將數據寫入事件中心時,它似乎在JSON周圍插入額外的語音標記,即寫入的內容"{"myjson":"blah"}"
而不是{"myjson":"blah"}
,所以下游我無法閱讀它。如何正確地將JSON寫入到事件中心
基於此guidance,我必須將JSON轉換爲字符串,然後使用GetBytes將它傳遞給EventData對象。我懷疑我試圖遵循這一指導是我的問題出現的地方。
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
public static class EventDataTransform
{
public static EventData ToEventData(dynamic eventObject, out int payloadSize)
{
string json = eventObject.ToString(Formatting.None);
payloadSize = Encoding.UTF8.GetByteCount(json);
var payload = Encoding.UTF8.GetBytes(json);
var eventData = new EventData(payload)
{
};
return eventData;
}
}
應該如何從含有序列化的數據一JArray項被轉換成EVENTDATA消息的內容?
代碼中調用的位置 - 在配料中使用高達256KB包裹
public bool MoveNext()
{
var batch = new List<EventData>(_allEvents.Count);
var batchSize = 0;
for (int i = _lastBatchedEventIndex; i < _allEvents.Count; i++)
{
dynamic evt = _allEvents[i];
int payloadSize = 0;
var eventData = EventDataTransform.ToEventData(evt, out payloadSize);
var eventSize = payloadSize + EventDataOverheadBytes;
if (batchSize + eventSize > MaxBatchSizeBytes)
{
break;
}
batch.Add(eventData);
batchSize += eventSize;
}
_lastBatchedEventIndex += batch.Count();
_currentBatch = batch;
return _currentBatch.Count() > 0;
}
如何'ToEventData()'叫什麼名字? –
添加到問題。我還在研究JArray是否是一組完整的JSON文檔FWIW的正確結構,或者是否某個其他對象可能更適合處理條目。 –