感謝@唐 - jayamanne和@dbc的提到,需要我的JSON得到很好的形成如何使用JSON.NET創建帶有嵌套數組值的JSON字符串?
這是我轉述的問題:
我們在工作中的應用程序使用JSON.NET創建JSON字符串。
這裏是我試圖創建JSON字符串:
{
"RouteID": "123321213312",
"DriverName": "JohnDoe",
"Shift": "Night",
"ItineraryCoordinates": [
[
9393,
4443
],
[
8832,
3322
],
[
223,
3432
],
[
223,
3432
]
]
}
這裏是故障代碼,我寫了創建上述JSON字符串
writer.WriteStartObject();
writer.WritePropertyName("RouteID");
serializer.Serialize(writer, routeID);
writer.WritePropertyName("DriverName");
serializer.Serialize(writer, driverName);
writer.WritePropertyName("Shift");
serializer.Serialize(writer, shift);
writer.WritePropertyName("ItineraryCoordinates");
ItineraryCoordinatesCollectionFactory tpCollFac = new ItineraryCoordinatesCollectionFactory();
ItineraryCoordinates anItineraryCoordinates;
StringBuilder coordSB = new StringBuilder();
IList<TimePeriod> ItineraryCoordinatesCollection = tpCollFac.createItineraryCoordinatesCollection();
for (int j = 0; j < ItineraryCoordinatesCollection.Count(); j++)
{
anItineraryCoordinates = ItineraryCoordinatesCollection[j];
writer.WriteStartObject();
writer.WritePropertyName("nested");
coordSB.Append(anItineraryCoordinates.StartTimePeriodCoordinate.X.ToString());
coordSB.Append(" , ");
coordSB.Append(anItineraryCoordinates.StartTimePeriodCoordinate.Y.ToString());
serializer.Serialize(writer, coordSB.ToString());
writer.WriteEndObject();
coordSB.Clear();
writer.WriteStartObject();
writer.WritePropertyName("nested");
coordSB.Append(aTimePeriod.EndTimePeriodCoordinate.X.ToString());
coordSB.Append(" , ");
coordSB.Append(aTimePeriod.EndTimePeriodCoordinate.Y.ToString());
serializer.Serialize(writer, coordSB.ToString());
coordSB.Clear();
writer.WriteEndObject();
} // end of for (int j = 0; j < OrderedTimePeriodsCollection.Count(); j++)
writer.WriteEndObject(); // closing off Json Object LogEventsTimePeriods
我每當我更改代碼中writer.WriteStartObject()的位置時,都會收到以下錯誤:
狀態對象中的令牌StartObject會導致無效的JSON對象。路徑''。
有人可以給一個粗略的代碼草案,我怎麼可以用JSON.NET寫出下面的JSON字符串?
{
"RouteID": "123321213312",
"DriverName": "JohnDoe",
"Shift": "Night",
"ItineraryCoordinates": [
[
9393,
4443
],
[
8832,
3322
],
[
223,
3432
],
[
223,
3432
]
]
}
您的JSON字符串無效。這就是爲什麼你會無法生成這樣的字符串。使用以下命令來驗證您的JSON字符串http://jsonlint.com/ – Don
將您的JSON上傳到http://jsonlint.com/,您將看到它無效。可能你想''ItineraryCoordinates''是一個*數組*而不是一個對象。 – dbc