Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery删除或更改JSON根元素_Javascript_Php_Jquery_Json - Fatal编程技术网

Javascript Jquery删除或更改JSON根元素

Javascript Jquery删除或更改JSON根元素,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我正在从第三方web服务获取一些数据。返回数据时,JSON的根元素设置为用户的用户名。由于这个用户名发生了变化,我试图找到一种方法来删除或更改这个根元素。如果不能这样做,有没有办法动态修改根元素的查找 示例为一个用户返回了JSON: { "someuseraccount":{ "data1": 3980203, "name": "someuseraccount", "data2": 33, "data3": 23,

我正在从第三方web服务获取一些数据。返回数据时,JSON的根元素设置为用户的用户名。由于这个用户名发生了变化,我试图找到一种方法来删除或更改这个根元素。如果不能这样做,有没有办法动态修改根元素的查找

示例为一个用户返回了JSON:

{
    "someuseraccount":{
        "data1": 3980203,
        "name": "someuseraccount",
        "data2": 33,
        "data3": 23,
        "data4": 989839
    }
}
示例为另一个用户返回了JSON:

{
    "someuseraccount2":{
        "data1": 3980203,    
        "name": "someuseraccount2",
        "data2": 33,
        "data3": 23,
        "data4": 989839
    }
}
当我将数据读入变量时,它是通过
obj.someuseraccount2.data1
完成的。这会导致应用程序出现问题,因为它只对一个用户可用

最好通过Jquery完成,但也可以通过php完成


谢谢

您可以通过按键访问数据(在本例中,只有一个键,但这并不重要)


通过获取json对象中的第一个键,然后在json对象中使用该键,可以访问data1、name、data2等属性:

function getFirstObjectProperty(obj)
{
    for(var k in obj)
    {
        return k;
    }
    return null;
}

var json = {
    "someuseraccount":{
        "data1": 3980203,
        "name": "someuseraccount",
        "data2": 33,
        "data3": 23,
        "data4": 989839
    }
};
var key = getFirstObjectProperty(json);
var data = json[key];
console.log(data);

我已经试过上面的代码,但是我遇到了问题。我得到的结果是,数组中的每个字符都是分开的,而不仅仅是从根元素中删除内部JSON。我做错什么了吗?示例输出:“{”、“s”、“o”、“m”、“e”、“u”、“s”、“e”、“r”…请原谅,如果我在这里监督一些显而易见的事情,这是我第一次遇到这种格式的JSON。通常我处理的JSON没有根元素。在这种情况下,“data”是一个字符串。我不确定您是如何将JSON导入系统的,但您可能必须确保
data=JSON.parse(data)
谢谢你这么做,我不知道我怎么会忽略了这一点。再次感谢!顺便说一句,如果我有这个名声,我会投你一票的
function getFirstObjectProperty(obj)
{
    for(var k in obj)
    {
        return k;
    }
    return null;
}

var json = {
    "someuseraccount":{
        "data1": 3980203,
        "name": "someuseraccount",
        "data2": 33,
        "data3": 23,
        "data4": 989839
    }
};
var key = getFirstObjectProperty(json);
var data = json[key];
console.log(data);