【问题标题】:JSON constructionJSON构造
【发布时间】:2013-08-20 00:33:30
【问题描述】:

我是 JSON 新手,每次创建新 JSON 时都会感到困惑。 我正在尝试创建一个这样的 JSON 数组:

{
      "id":"2003",
      "HouseMD" : 
            {
              "Doctor_1": "Thirteen",
              "Doctor_2" : "Chase"
              "Doctor_n" : "Someone"
            }

}

基本上,我试图在 for 循环中将信息从 Doctor_1 动态添加到 Doctor_n”。如果我使用 JSON 对象,我只会在最终打印它时获得最后一个值。 我怎样才能得到我想要的东西? 任何帮助表示赞赏。

谢谢。

【问题讨论】:

  • 我认为您不必将 HouseMD 存储在对象中,您应该使用数组来代替。你知道应该有医生,所以保留'Doctor_1',_2等键是没有意义的。只需做{ id: 1, HouseMD: [ 'Thirteen', 'Chase', 'Someone' ] }或者,如果你想为医生存储更多属性,那么它可能是医生对象数组@ 987654324@
  • 这篇文章可能会有所帮助:stackoverflow.com/questions/15402321/…

标签: java android json


【解决方案1】:

请注意,为了使下面的代码正常工作,您还需要 JSON 库,您可以从这里轻松下载 Download Java JSON Library

我不知道您使用的方法,但根据您想要的格式,我会这样做:

JSONObject data = new JSONObject();

data.put("id", "2003");

JSONObject doctors = new JSONObject();

//here I suppose you have all doctors in a list named doctorList
//and also suppose that you get the name of a doctor by the getName() method
for (int i = 0; i < doctorList.size(); ++i)
{
   doctors.put("Doctor_" + (i+1), doctorList.get(i).getName();
}

data.put("HouseMD", doctors);

//then you could write to a file, or on screen just for test
System.out.println(data.toString());

不过,我觉得您需要更加熟悉 JSON,所以请尝试starting here

【讨论】:

  • 我尝试将其发送到服务器,服务器返回说格式错误的 UTF-8 字符,可能编码错误,该怎么办
  • @JPro IDK 为什么我认为你在使用 Java。您在客户端和服务器端使用什么语言,我可能会帮助您。也许您到目前为止尝试过的代码..
  • 在移动端,我使用的是 java,在服务器端,我使用的是 PHP,这就是我想要验证接收到的 JSON 字符串的地方,并且 php 代码会打印错误消息 I上面提到的
  • 这意味着你的编码有问题。可以发一些代码吗?
【解决方案2】:

JSON 数组如下所示:

{ "id":"2003", "HouseMD" : [{ "Doctor_1": "Thirteen"}, {"Doctor_2" : "Chase"}, {"Doctor_n" : "Someone" }]}

注意数组中每个 JSON 对象的方括号。

这里是 JSON 网站的链接,可以提供更多信息:

JSON

【讨论】:

  • 如何构造这样的 JSON?以及如何在服务器端检索它?
猜你喜欢
  • 1970-01-01
  • 2018-12-03
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-21
  • 2018-06-24
相关资源
最近更新 更多