2015-11-07 20 views
0

我有转储的使用json_decode()人PHP json_encoded阵列失效mongoimport

foreach ($personArray as $person) {    
    $currentPosition = $person->loadCurrentPosition(); 
    $one[ FIELD_NAME ] = $person->getName(); 
    $one[ FIELD_ID ] = $person->getId(); 
    $one[ FIELD_ORGANIZATION_ID ] = $currentPosition->organization->getId(); 
    $one[ FIELD_ORGANIZATION_NAME ] = $currentPosition->organization->getName(); 
    $result[] = $one; 
} 
$jsonResult = json_encode($result ); 

我结果放入一个名为 'people.json' 列表的PHP脚本:

[ 
    { 
     "name": "Bobby Brown", 
     "id": 32632, 
     "organizationid": 40492, 
     "organizationname": "Exinda Networks" 
    }, 
    { 
     "name": "Billy Bob", 
     "id": 32633, 
     "organizationid": 29824, 
     "organizationname": "Desire2Learn" 
    } 
] 

我用mongoimport(MongoDB的v3.0.7):

mongoimport --db test --collection people --drop --file people.json 

我碰到下面的错误和0文档导入:

2015-11-07T17:02:35.461-0500 Failed: error unmarshaling bytes on document #0: JSON decoder out of sync - data changing underfoot? 

予删除前面的方括号“[”和尾随“]”的文件中,并mongoimport再次尝试:

2015-11-07T17:13:37.575-0500 Failed: error processing document #2: invalid character ',' looking for beginning of value 

予删除该文件在两个JSON对象之间的“”和进口工程:

2015-11-07T17:16:12.162-0500 imported 2 documents 

json_encode()错误地编码?

json_encode()选项中的一个会导致mongoimport喜欢的格式吗?

+0

使用jsonlint.com检查您的JSON的有效性。 – aldrin27

+0

感谢@ aldrin27为PHP json_encode()文件jsonlint.com说“有效的JSON”。对于修改后的mongoimport阅读OK jsonlint.com说“解析错误”,所以它显示它是mongoimport –

回答