导航:
论坛 -> 移动应用开发
斑竹:flyers,iamdream
作者:
2024/3/17 20:10:29
标题:
请问jsonobject排序怎么实现,百度搜索AI的回答编译不通过
浏览:300
加入我的收藏
楼主:
uses System.JSON, System.Generics.Collections, System.JSON.Builders; var JSONObject: TJSONObject; JSONPairList: TList<TJSONPair>; SortedKeys: TDictionary<string, TJSONValue>; JSONBuilder: TJSONBuilder; Key: string; Pair: TJSONPair; JSONStr: string; begin // 示例JSONObject JSONObject := TJSONObject.ParseJSONValue('{"c":3,"a":1,"b":2}') as TJSONObject; try // 创建一个字典来存储键值对 SortedKeys := TDictionary<string, TJSONValue>.Create; try // 将JSONObject中的键值对添加到字典中 for Pair in JSONObject do SortedKeys.Add(Pair.JsonString.Value, JSONObject.GetValue(Pair.JsonString.Value)); // 清空JSONObject JSONObject.Clear; // 对字典中的键进行排序 JSONPairList := TList<TJSONPair>.Create; try for Key in SortedKeys.Keys do JSONPairList.Add(TJSONPair.Create(Key, SortedKeys[Key])); // 使用JSONBuilder来构建排序后的JSON字符串 JSONBuilder := TJSONBuilder.Create(TJSONFormatter.Create(TStringBuilder.Create)); try for Pair in JSONPairList do JSONBuilder.Add(Pair.JsonString.Value, Pair.JsonValue); JSONStr := JSONBuilder.ToString; finally JSONBuilder.Free; end; finally JSONPairList.Free; end; finally SortedKeys.Free; end; // 输出排序后的JSON字符串 WriteLn(JSONStr); finally JSONObject.Free; end; end;
----------------------------------------------
-
作者:
2024/3/17 21:03:41
1楼:
function SortedObject(A:TJsonObject):TJsonObject var s : tstringlist; begin s := tstringlist.create; try s.sorted := true; for var i := 0 to A.count-1 do s.addobject(A.pairs[i].JsonString.Value,A.pairs[i].JsonValue); Result := TJsonObject.Create; for var i := 0 to s.count-1 do Result.AddPair(s[i],TJsonValue(s,objects[i])); finally s.free; end; end;
----------------------------------------------
-
作者:
2024/3/18 10:25:06
2楼:
谢谢
----------------------------------------------
-