查询 JSON 字符串

发布于 2024-08-28 04:52:51 字数 241 浏览 4 评论 0原文

有没有办法查询特定项目的 JSON(字符串)?

即:

String jSon = "{\"a\":{\"b\":27472483,\"c\":\"123\"}}";

这样:

Int32 bob = (Int32)getFromJSON("a.b", jSon);
// bob == 27472483

谢谢, -西奥

Is there a way to query a JSON (String) for a specific item?

ie:

String jSon = "{\"a\":{\"b\":27472483,\"c\":\"123\"}}";

such that:

Int32 bob = (Int32)getFromJSON("a.b", jSon);
// bob == 27472483

Thank you,
-Theo

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

╰◇生如夏花灿烂 2024-09-04 04:52:51

您在这里要做的是将 JSON 字符串反序列化为 C# 对象,然后从那里访问“b”属性。 更多相关信息

What you want to do here is to deserialize the JSON string into a C# object, and then access the 'b' property from there. More on that here

热风软妹 2024-09-04 04:52:51
    public T getFromJSON<T>(String sel, String jSon)
    {
        String[] id = sel.Split('.');
        Object tmp = jSon;

        for (int i = 0; i < id.Length; i++)
        {
            tmp = tmp.ToString().Split(new string[] { "\"" + id[i] + "\":" }, StringSplitOptions.None)[1];
        }

        Boolean isString = false;
        if (tmp.ToString().StartsWith("\""))
        {
            tmp = tmp.ToString().Substring(1);
            isString = true;
        }

        tmp = tmp.ToString().Split(new char[] { '}', ']', '"' }, StringSplitOptions.None)[0];

        if (!isString && tmp.ToString().EndsWith(","))
            tmp = tmp.ToString().Substring(0, tmp.ToString().Length - 1);

        if (typeof(T) == typeof(Int32))
            tmp = Int32.Parse(tmp.ToString());

        return (T)tmp;
    }

v0.7b 有效!

    public T getFromJSON<T>(String sel, String jSon)
    {
        String[] id = sel.Split('.');
        Object tmp = jSon;

        for (int i = 0; i < id.Length; i++)
        {
            tmp = tmp.ToString().Split(new string[] { "\"" + id[i] + "\":" }, StringSplitOptions.None)[1];
        }

        Boolean isString = false;
        if (tmp.ToString().StartsWith("\""))
        {
            tmp = tmp.ToString().Substring(1);
            isString = true;
        }

        tmp = tmp.ToString().Split(new char[] { '}', ']', '"' }, StringSplitOptions.None)[0];

        if (!isString && tmp.ToString().EndsWith(","))
            tmp = tmp.ToString().Substring(0, tmp.ToString().Length - 1);

        if (typeof(T) == typeof(Int32))
            tmp = Int32.Parse(tmp.ToString());

        return (T)tmp;
    }

v0.7b Works!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文