1

我有一个对象,我想展示它的内容。

{"text": "active    user
          active  user213123
          idle      user234234234
          loggedout  userafdadf"
},

我做到了Response = message.split(":")[1];,我得到了:

"active    user
          active  user213123
          idle      user234234234
          loggedout  userafdadf"
},

然后:var value = message.split("}")[0];我得到了:

"active    user
          active  user213123
          idle      user234234234
          loggedout  userafdadf"

那么现在我怎样才能摆脱""文本的原始价值呢?除此之外还有其他方法可以检索对象的值吗?因为这种方式看起来很疯狂..

我将要从中获取“文本”的整个对象放在这里:(这就是 chrome 调试器在控制台日志后显示的内容)

{
getResponseHeader: function ( key ){}
pipe: function ( /* STDone, STFail, STProgress */ ) {
progress: function () {
promise: function ( obj ) {
readyState: 4

    TextContent: "{"text": "active    user
                  active  user213123
                  idle      user234234234
                  loggedout  userafdadf"}"

假设它们在消息变量中,然后我做了Response = message.TextContent;,在 console.log 之后我收到:

 TextContent: "{"text": "active    user
              active  user213123
              idle      user234234234
              loggedout  userafdadf"}"

现在我想要文本的原始值

4

8 回答 8

1

为什么不直接更换呢?

myString = myString.replace(/["]/g,'')
console.log(myString);
//or
alert(myString);

如果你想现场观看http://jsfiddle.net/PwGcr/

于 2013-09-11T05:25:21.887 回答
0

我猜您正在处理一些 JSON 字符串,如果是这样,您必须将其转换为 javascript 结构才能查询它:

function parseJSON(json) {
    return (new Function('return ' + json + ';'))();
}
var o = parseJSON('{"test":"some content"}');
o.test // "some content"

但是,在您的示例中,字符串末尾有一个逗号,这可能会引发错误。确保在解析之前将其删除。

请注意,有几种解析 JSON 的方法,这一种应该适用于所有现代浏览器:https ://stackoverflow.com/a/18733016/1636522 。检查此链接以查看当前支持的浏览器JSON.parse()

于 2013-09-11T05:50:02.483 回答
0
var myObj = {text: "active    user
             active  user213123
             idle      user234234234
             loggedout  userafdadf" 
            };

var myText = myObj.text

只需像对象上的属性一样访问它

于 2013-09-11T05:00:06.177 回答
0
TextContent: "{"text": "active    user
          active  user213123
          idle      user234234234
          loggedout  userafdadf"}"

这里的TextContent属性是一个字符串,而不是 JSON 对象。您应该使用JSON.parse(message.TextContent)将字符串转换为 JSON 对象。

var jsonMessage = JSON.parse(message.TextContent);
alert(jsonMessage.text); // will alert the value of **text** property.

请参阅http://jsfiddle.net/5MtNf/1/

于 2013-09-11T05:00:47.483 回答
0
 var jsonObj={"text": "active  user active  user213123 idle user234234234 loggedout  userafdadf"};
 alert('json obj '+jsonObj["text"]);
于 2013-09-11T05:01:53.100 回答
0

这是一个 JSON 字符串。而不是尝试对其进行字符串操作 - 将其解析为 JSON 对象并使用对象的属性,例如

 var obj = JSON.parse(message);
 alert(obj.text);
于 2013-09-11T05:02:53.727 回答
0

您可以使用以下函数从字符串中删除所有字符。

String.prototype.replaceAll = function(token, newToken, ignoreCase) {
  var _token;
  var str = this + "";
  var i = -1;

  if (typeof token === "string") {

    if (ignoreCase) {

      _token = token.toLowerCase();

      while ((i = str.toLowerCase().indexOf(token, i >= 0 ? i + newToken.length : 0)) !== -1) {
        str = str.substring(0, i) + newToken + str.substring(i + token.length);
      }

    } else {
      return this.split(token).join(newToken);
    }

  }
  return str;
};
于 2013-09-11T05:04:03.110 回答
0

要从字符串的开头省略",您可以使用:

string.substr(1)

查看此链接以使用字符串,但我建议您使用对象查看链接。

第一种方式是糟糕的编码风格并且不正确。

于 2013-09-11T05:08:12.010 回答