【问题标题】:Accessing Data stored in an object访问存储在对象中的数据
【发布时间】:2017-04-14 05:30:11
【问题描述】:

我正在尝试从我的对象中访问“名称”,但是我没有找到解决方案的运气。我的最终目标是访问文件名,然后用它来显示图像。但是我没有运气说出实际的名字。

这是我试图从中访问数据的对象:

{
     "file-0": {
        "name": "2012-11-23-JokeExplanationCorner.jpg",
        "type": "image\/jpeg",
        "tmp_name": "C:\\xampp2\\tmp\\phpA93E.tmp",
        "error": 0,
        "size": 378086
       },
        "file-1": {
        "name": "11039919_10206003688989240_2065769962_n.jpg",
        "type": "image\/jpeg",
        "tmp_name": "C:\\xampp2\\tmp\\phpA940.tmp",
        "error": 0,
        "size": 143703
   }
}

这是生成文件的 php:如果有更好的方法可以更轻松地执行此操作,我愿意接受建议:

$sFileName = "imgDB.txt";

for($i=0 ; $i<count($_FILES) ; $i++){
    move_uploaded_file( $_FILES['file-'.$i]['tmp_name'] , "img/". $_FILES['file-
'.$i]['name'] );
}

$_FILES = json_encode($_FILES, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
file_put_contents($sFileName, $_FILES);

最后,这就是那种可以工作的 JS。它正在获取文件名,但我无法将其降低到另一个级别并 console.log 文件中所有 imgs 的名称。

$.getJSON( "imgDB.txt" , function( jData ) {
     console.log("getJSON called for images");

    for (var name in jData) {
         if (jData.hasOwnProperty(name)) {
            console.log(" name is = " + name);
            console.log("jData = " + jData);
            }
        }

【问题讨论】:

  • 使用.json 文件而不是.txt
  • 你需要确保你先进入jData.file-0
  • console.log(jData) 并在此处显示输出
  • 我的 JS 末尾的两个 console.log 产生:name is = file-1jData = [object Object]

标签: javascript php jquery object


【解决方案1】:

试试这个 Js Snippet。

var Jdata = {
         "file-0": {
            "name": "2012-11-23-JokeExplanationCorner.jpg",
            "type": "image\/jpeg",
            "tmp_name": "C:\\xampp2\\tmp\\phpA93E.tmp",
            "error": 0,
            "size": 378086
           },
            "file-1": {
            "name": "11039919_10206003688989240_2065769962_n.jpg",
            "type": "image\/jpeg",
            "tmp_name": "C:\\xampp2\\tmp\\phpA940.tmp",
            "error": 0,
            "size": 143703
       }
    }
    var length = Object.keys(Jdata).length;
    for (var i=0; i< length; i++) {
            console.log(" name is = " + Jdata['file-'+i]['name']);
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多