标签: system.json

如何用System.Json打印漂亮的?

使用4.5中的新System.JsonNuget的等效System.Json for 4.0如何格式化输出,使其以更易读的形式缩进和间隔?

所以这

dynamic jsonObj = new JsonObject();
jsonObj.firstName = "John";
jsonObj.lastName = "Smith";
Debug.WriteLine((string)jsonObj.ToString());
Run Code Online (Sandbox Code Playgroud)

输出这个

{"firstName":"John","lastName":"Smith"}
Run Code Online (Sandbox Code Playgroud)

当我想要这个

{
  "firstName": "John",
  "lastName": "Smith"
}
Run Code Online (Sandbox Code Playgroud)

.net c# formatting system.json

4
推荐指数
1
解决办法
7629
查看次数

Delphi XE7:如何使用 System.JSON(与 SuperObject)更改 JSON 值

我需要加载一个 JSON 文件,更改一个值,然后将其写回磁盘。

使用 SuperObject 很容易,但我如何使用 System.JSON 单元做同样的事情?

const
  PathToX = 'AllCategories.Category[0].subCategory[0].products[0].views.view[0].x';

var
  JsonFilename: string;

  JO: ISuperObject; // from the SuperObject unit
  JV: TJsonValue;   // from the System.Json unit

begin
  JsonFilename := ExtractFilePath(Application.ExeName)+'product.json');

  // Using the SuperObject unit:
  JO := SO(TFile.ReadAllText(JsonFilename));

  WriteLn('The old value of "x" is ', JO[PathToX].AsString);
  WriteLn('Changing value of x to "123"');
  JO.S[PathToX] := '123';   // Set the value of "x"
  WriteLn('The new value of "x" is ', JO[PathToX].AsString);

  // Now trying to do the same thing …
Run Code Online (Sandbox Code Playgroud)

delphi json system.json superobject

3
推荐指数
1
解决办法
7184
查看次数

如何在c#中检查json数组是否为空?

我正在调用 Google Maps 并使用 System.JSON 来解析对象。我使用以下方法抓取我的对象:

double placeLat = json["results"][0]["geometry"]["location"]["lat"];
Run Code Online (Sandbox Code Playgroud)

然后我想检查第三个对象是否存在,如果是,则执行一些操作,但显然以下操作失败。我知道谷歌地图在这种情况下返回 2 个对象,我想检查第三个对象以避免对 null 执行操作并进一步传递它们。当谷歌地图返回 3 个对象时,以下工作正常,所以我相信我的条件是错误的。

if (json["results"][2] != null) {

        }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

指数超出范围。必须是非负的并且小于集合的大小。参数名称:索引

关于如何在使用 System.JSON 的情况下正确构建 if 语句的任何想法?

c# json google-maps if-statement system.json

1
推荐指数
1
解决办法
8725
查看次数