【问题标题】:How to set a parameter in json when json is string formatjson为字符串格式时如何在json中设置参数
【发布时间】:2014-04-01 06:23:39
【问题描述】:

如何在json中设置参数 这个json是字符串类型的,我用的是c#代码。

这是我的 json;

double Latitude = e.current.Latitude;
double Longitude = e.current.Longitude;
string json = "{ \"device_id\" : \"nishant\",\"position\" : \"47.64325,-122.14196\" }";

如何在位置 47.64325 和 -122.14196 中设置纬度和经度

【问题讨论】:

  • 此行返回错误 Formate exception was unhandled "FormatException"

标签: c# asp.net .net json windows-phone-8


【解决方案1】:

使用Newtonsoft.Json lib 和动态,您可以执行以下操作:

double Latitude = 11.1234;
double Longitude = 22.4321;
string json = "{ \"device_id\" : \"nishant\",\"position\" : \"47.64325,-122.14196\" }";

dynamic jsonObject = JsonConvert.DeserializeObject(json);
jsonObject.position = Latitude.ToString() + ',' + Longitude.ToString();
json = JsonConvert.SerializeObject(jsonObject);

这是工作小提琴http://dotnetfiddle.net/Bosonr

【讨论】:

    【解决方案2】:

    你可以使用占位符

    double Latitude = 47.64325;
    double Longitude = -122.14196;
    string json = "{" + "\"" + "device_id" + "\"" + ":" + "\"" + "nishant" + "\"" + "," + "\"" + "position" + "\"" + ":" + " \"" + Latitude
                    + "," + Longitude + "\"" + " }";
    

    【讨论】:

    • 请给我解决方案
    • 当我尝试发布你的代码时它返回一个错误,错误是 JSONObject["device_id"] not found
    • 我得到了问题,谢谢先生,问题是 device_id+ 这里我改为 device_id
    • @NishantChandwani,对不起,我已经编辑了,有一个小错误,你再试一次。希望您可以将其标记为 anwser
    【解决方案3】:
    double Latitude = e.current.Latitude;
    double Longitude = e.current.Longitude;
    string json = "{ 'device_id' : 'nishant','position' : '" + Latitude + "','" + Longitude + "'}";
    

    【讨论】:

    • 实际上这种类型的 json 没有返回错误,我使用字符串类型 json 这是正确的 json 函数。我已经使用了 post 方法并在 web 服务上发送了这个参数。所以这不起作用
    • 你能说一下你是如何发布请求的......因为它可能出错了
    猜你喜欢
    • 2021-10-19
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    相关资源
    最近更新 更多