2017-08-07 115 views
0

我知道有一堆关于PHP数组转换为JSON结果的另一个话题,但我需要的是一点点具体的,我很感激,如果有人可以帮助取得预期的结果。转换PHP数组到JSON

我试图生成使用一些阵列或2个维数组以下JSON的结果,但它不能正常工作。

其他人可以帮我把这个结果作为JSON值如下吗?

{ 
"header": { 
    "key": { 
    "name": "JSAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
}, 
"jobs": [{ 
    "jobDefinition": { 
    "header": { 
    "jobDefinitionKey": { 
    "name": "JOBAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    }, 
    "header": { 
    "key": { 
    "name": "JOBAGUINA", 
    "jobStreamKey": { 
    "name": "JSAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    } 
}, { 
    "jobDefinition": { 
    "header": { 
    "jobDefinitionKey": { 
    "name": "JOBAGUINA_1", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    }, 
    "header": { 
    "key": { 
    "name": "JOBAGUINA_1", 
    "jobStreamKey": { 
    "name": "JSAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    }, 
    "internalDependencies": [{ 
    "jobKey": { 
    "name": "JOBAGUINA", 
    "jobStreamKey": { 
    "name": "JSAGUINA", 
    "workstationName": "PRODUCTION" 
    } 
    } 
    }] 
}] 
} 
+0

可以添加一个代码,以显示您停止,所以我们可以搞清楚这是最好的,并帮助您的逻辑错误是 –

+0

我没有看到任何与您的符号过于独特,一切都是除非其对象一个对象数组(其中方括号表示法开始) – Scuzzy

+0

echo json_encode($ array);这不正常吗? – Slavez

回答

0

很难判断出错的地方而没有看到PHP数组的内容。

使用echo json_encode($arr);得到这个数组。如果您在返回时尝试在使用json_encode之前将值转换为utf-8(在大多数情况下帮助我)。

为了进一步调试,你应该使用json_last_error

0

使用json_encode()将数组转换成JSON:

echo json_encode($yourarray); 
0

现在我能正确生成JSON,但它仍然缺少一个点作为你们下面可以看到,它错过了最后的2个元素“tasksString”和“recoveryOption”正确:

见最后两个元素下面是不是在阵列的正确位置。他们应该在“},”之后。

预期:

'{ 
           "header": { 
            "jobDefinitionKey": { 
             "name": "'. $jobname .'", 
             "workstationName": "' . $wks . '" 
            }, 
            "description": "' . $descrip . '", 
            "taskType": "' . $tasktype . '", 
            "isCommand": "'. $command .'", 
            "userLogin": "' . $userlogin . '" 
            }, 
            "taskString": "' . $taskcmd . '", 
            "recoveryOption": "STOP" 
           }'; 

代码:

$object->header = array (
    'jobDefinitionKey' => array (
      'name' => $jobname, 
      'workstationName' => $wks 
    ), 
    'description' => $descrip, 
    'taskType' => $tasktype, 
    'isCommand' => $command, 
    'userLogin' => $userlogin, 

      'taskString' => $taskcmd, 
      'recoveryOption' => 'STOP' 
    ) ;  

我的JSON结果:

{ 
"header": { 
    "jobDefinitionKey": { 
     "name": null, 
     "workstationName": null 
    }, 
    "description": null, 
    "taskType": null, 
    "isCommand": null, 
    "userLogin": null, 
    "taskString": null, 
    "recoveryOption": "STOP" 
} 

}

+0

见最后两个元素下面是不是在阵列的正确位置...... “taskString”:空, “recoveryOption”:“STOP” –